| @@ -248,6 +248,14 @@ static int jacosub_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
| return ff_subtitles_queue_read_packet(&jacosub->q, pkt); | return ff_subtitles_queue_read_packet(&jacosub->q, pkt); | ||||
| } | } | ||||
| static int jacosub_read_seek(AVFormatContext *s, int stream_index, | |||||
| int64_t min_ts, int64_t ts, int64_t max_ts, int flags) | |||||
| { | |||||
| JACOsubContext *jacosub = s->priv_data; | |||||
| return ff_subtitles_queue_seek(&jacosub->q, s, stream_index, | |||||
| min_ts, ts, max_ts, flags); | |||||
| } | |||||
| AVInputFormat ff_jacosub_demuxer = { | AVInputFormat ff_jacosub_demuxer = { | ||||
| .name = "jacosub", | .name = "jacosub", | ||||
| .long_name = NULL_IF_CONFIG_SMALL("JACOsub subtitle format"), | .long_name = NULL_IF_CONFIG_SMALL("JACOsub subtitle format"), | ||||
| @@ -255,6 +263,7 @@ AVInputFormat ff_jacosub_demuxer = { | |||||
| .read_probe = jacosub_probe, | .read_probe = jacosub_probe, | ||||
| .read_header = jacosub_read_header, | .read_header = jacosub_read_header, | ||||
| .read_packet = jacosub_read_packet, | .read_packet = jacosub_read_packet, | ||||
| .read_seek2 = jacosub_read_seek, | |||||
| .read_close = jacosub_read_close, | .read_close = jacosub_read_close, | ||||
| .flags = AVFMT_GENERIC_INDEX, | .flags = AVFMT_GENERIC_INDEX, | ||||
| }; | }; | ||||
| @@ -126,6 +126,14 @@ static int microdvd_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
| return ff_subtitles_queue_read_packet(µdvd->q, pkt); | return ff_subtitles_queue_read_packet(µdvd->q, pkt); | ||||
| } | } | ||||
| static int microdvd_read_seek(AVFormatContext *s, int stream_index, | |||||
| int64_t min_ts, int64_t ts, int64_t max_ts, int flags) | |||||
| { | |||||
| MicroDVDContext *microdvd = s->priv_data; | |||||
| return ff_subtitles_queue_seek(µdvd->q, s, stream_index, | |||||
| min_ts, ts, max_ts, flags); | |||||
| } | |||||
| static int microdvd_read_close(AVFormatContext *s) | static int microdvd_read_close(AVFormatContext *s) | ||||
| { | { | ||||
| MicroDVDContext *microdvd = s->priv_data; | MicroDVDContext *microdvd = s->priv_data; | ||||
| @@ -140,6 +148,7 @@ AVInputFormat ff_microdvd_demuxer = { | |||||
| .read_probe = microdvd_probe, | .read_probe = microdvd_probe, | ||||
| .read_header = microdvd_read_header, | .read_header = microdvd_read_header, | ||||
| .read_packet = microdvd_read_packet, | .read_packet = microdvd_read_packet, | ||||
| .read_seek2 = microdvd_read_seek, | |||||
| .read_close = microdvd_read_close, | .read_close = microdvd_read_close, | ||||
| .flags = AVFMT_GENERIC_INDEX, | .flags = AVFMT_GENERIC_INDEX, | ||||
| }; | }; | ||||
| @@ -125,6 +125,14 @@ static int realtext_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
| return ff_subtitles_queue_read_packet(&rt->q, pkt); | return ff_subtitles_queue_read_packet(&rt->q, pkt); | ||||
| } | } | ||||
| static int realtext_read_seek(AVFormatContext *s, int stream_index, | |||||
| int64_t min_ts, int64_t ts, int64_t max_ts, int flags) | |||||
| { | |||||
| RealTextContext *rt = s->priv_data; | |||||
| return ff_subtitles_queue_seek(&rt->q, s, stream_index, | |||||
| min_ts, ts, max_ts, flags); | |||||
| } | |||||
| static int realtext_read_close(AVFormatContext *s) | static int realtext_read_close(AVFormatContext *s) | ||||
| { | { | ||||
| RealTextContext *rt = s->priv_data; | RealTextContext *rt = s->priv_data; | ||||
| @@ -139,6 +147,7 @@ AVInputFormat ff_realtext_demuxer = { | |||||
| .read_probe = realtext_probe, | .read_probe = realtext_probe, | ||||
| .read_header = realtext_read_header, | .read_header = realtext_read_header, | ||||
| .read_packet = realtext_read_packet, | .read_packet = realtext_read_packet, | ||||
| .read_seek2 = realtext_read_seek, | |||||
| .read_close = realtext_read_close, | .read_close = realtext_read_close, | ||||
| .flags = AVFMT_GENERIC_INDEX, | .flags = AVFMT_GENERIC_INDEX, | ||||
| .extensions = "rt", | .extensions = "rt", | ||||
| @@ -112,6 +112,14 @@ static int sami_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
| return ff_subtitles_queue_read_packet(&sami->q, pkt); | return ff_subtitles_queue_read_packet(&sami->q, pkt); | ||||
| } | } | ||||
| static int sami_read_seek(AVFormatContext *s, int stream_index, | |||||
| int64_t min_ts, int64_t ts, int64_t max_ts, int flags) | |||||
| { | |||||
| SAMIContext *sami = s->priv_data; | |||||
| return ff_subtitles_queue_seek(&sami->q, s, stream_index, | |||||
| min_ts, ts, max_ts, flags); | |||||
| } | |||||
| static int sami_read_close(AVFormatContext *s) | static int sami_read_close(AVFormatContext *s) | ||||
| { | { | ||||
| SAMIContext *sami = s->priv_data; | SAMIContext *sami = s->priv_data; | ||||
| @@ -126,6 +134,7 @@ AVInputFormat ff_sami_demuxer = { | |||||
| .read_probe = sami_probe, | .read_probe = sami_probe, | ||||
| .read_header = sami_read_header, | .read_header = sami_read_header, | ||||
| .read_packet = sami_read_packet, | .read_packet = sami_read_packet, | ||||
| .read_seek2 = sami_read_seek, | |||||
| .read_close = sami_read_close, | .read_close = sami_read_close, | ||||
| .flags = AVFMT_GENERIC_INDEX, | .flags = AVFMT_GENERIC_INDEX, | ||||
| .extensions = "smi,sami", | .extensions = "smi,sami", | ||||
| @@ -157,6 +157,14 @@ static int subviewer_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
| return ff_subtitles_queue_read_packet(&subviewer->q, pkt); | return ff_subtitles_queue_read_packet(&subviewer->q, pkt); | ||||
| } | } | ||||
| static int subviewer_read_seek(AVFormatContext *s, int stream_index, | |||||
| int64_t min_ts, int64_t ts, int64_t max_ts, int flags) | |||||
| { | |||||
| SubViewerContext *subviewer = s->priv_data; | |||||
| return ff_subtitles_queue_seek(&subviewer->q, s, stream_index, | |||||
| min_ts, ts, max_ts, flags); | |||||
| } | |||||
| static int subviewer_read_close(AVFormatContext *s) | static int subviewer_read_close(AVFormatContext *s) | ||||
| { | { | ||||
| SubViewerContext *subviewer = s->priv_data; | SubViewerContext *subviewer = s->priv_data; | ||||
| @@ -171,6 +179,7 @@ AVInputFormat ff_subviewer_demuxer = { | |||||
| .read_probe = subviewer_probe, | .read_probe = subviewer_probe, | ||||
| .read_header = subviewer_read_header, | .read_header = subviewer_read_header, | ||||
| .read_packet = subviewer_read_packet, | .read_packet = subviewer_read_packet, | ||||
| .read_seek2 = subviewer_read_seek, | |||||
| .read_close = subviewer_read_close, | .read_close = subviewer_read_close, | ||||
| .flags = AVFMT_GENERIC_INDEX, | .flags = AVFMT_GENERIC_INDEX, | ||||
| .extensions = "sub", | .extensions = "sub", | ||||
| @@ -168,6 +168,14 @@ static int webvtt_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||
| return ff_subtitles_queue_read_packet(&webvtt->q, pkt); | return ff_subtitles_queue_read_packet(&webvtt->q, pkt); | ||||
| } | } | ||||
| static int webvtt_read_seek(AVFormatContext *s, int stream_index, | |||||
| int64_t min_ts, int64_t ts, int64_t max_ts, int flags) | |||||
| { | |||||
| WebVTTContext *webvtt = s->priv_data; | |||||
| return ff_subtitles_queue_seek(&webvtt->q, s, stream_index, | |||||
| min_ts, ts, max_ts, flags); | |||||
| } | |||||
| static int webvtt_read_close(AVFormatContext *s) | static int webvtt_read_close(AVFormatContext *s) | ||||
| { | { | ||||
| WebVTTContext *webvtt = s->priv_data; | WebVTTContext *webvtt = s->priv_data; | ||||
| @@ -182,6 +190,7 @@ AVInputFormat ff_webvtt_demuxer = { | |||||
| .read_probe = webvtt_probe, | .read_probe = webvtt_probe, | ||||
| .read_header = webvtt_read_header, | .read_header = webvtt_read_header, | ||||
| .read_packet = webvtt_read_packet, | .read_packet = webvtt_read_packet, | ||||
| .read_seek2 = webvtt_read_seek, | |||||
| .read_close = webvtt_read_close, | .read_close = webvtt_read_close, | ||||
| .flags = AVFMT_GENERIC_INDEX, | .flags = AVFMT_GENERIC_INDEX, | ||||
| .extensions = "vtt", | .extensions = "vtt", | ||||