Skip to content

HLS EOF error on seek #1733

@mcfriend99

Description

@mcfriend99

Current Behavior:

Same m3u8 video I've successfully played multiple times to the end crashes whenever I seek with end of file error:

Video player error: 
Object { message: "virtual MediaResult mozilla::FFmpegVideoDecoder<58>::DoDecode(MediaRawData *, uint8_t *, int, bool *, MediaDataDecoder::DecodedData &): avcodec_send_packet error: End of file", code: 3, mediaError: MediaError }
​
code: 3
​
mediaError: MediaError { code: 3, message: "virtual MediaResult mozilla::FFmpegVideoDecoder<58>::DoDecode(MediaRawData *, uint8_t *, int, bool *, MediaDataDecoder::DecodedData &): avcodec_send_packet error: End of file" }
​
message: "virtual MediaResult mozilla::FFmpegVideoDecoder<58>::DoDecode(MediaRawData *, uint8_t *, int, bool *, MediaDataDecoder::DecodedData &): avcodec_send_packet error: End of file"

Expected Behavior:

Seek is supposed to work just fine.

My Code

<MediaPlayer
            ref={playerRef}
            className="relative w-full aspect-video bg-black border-0 rounded-lg overflow-hidden shadow-2xl"
            title={title}
            src={src}
            poster={posterUrl}
            crossOrigin
            onTimeUpdate={handleTimeUpdate}
            onEnded={handleEnded}
            onError={handleError}
            onPause={handlePaused}
            playsInline
            // muted={true}
            autoPlay={true}
            currentTime={startTime}
        >
            <MediaProvider ref={providerRef} />
            <Captions className="vds-captions" />

            {subtitles && subtitles.map((subtitle) => subtitle.url.length > 0 ? <Track
                key={subtitle.url}
                kind="captions"
                src={subtitle.url}
                label={subtitle.lang}
                default={subtitle.lang.toLowerCase() === 'english' || subtitles.length === 1}
            /> : null)}

            <SkipIntro intro={intro} onClick={() => playerRef.current?.remoteControl.seek(intro!.end)} />
            <SkipOutro outro={outro} onClick={() => playerRef.current?.remoteControl.seek(outro!.end)} canGoNext={canGoNext} />

            <DefaultVideoLayout
                icons={defaultLayoutIcons}
                colorScheme="dark"
                thumbnails={thumbnails && thumbnails.length > 0 ? thumbnails[0].url : undefined}
                slots={{
                    beforeSettingsMenu: <div className="contents">
                        <SeekButton className="vds-button" seconds={-10}>
                            <SeekBackward10Icon />
                        </SeekButton>
                        <SeekButton className="vds-button" seconds={10}>
                            <SeekForward10Icon />
                        </SeekButton>
                    </div>,
                }}
            />
        </MediaPlayer>

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions