From 271a00043ef3116d9561e45fa5773a0d9a0993c2 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Tue, 27 Nov 2018 18:22:02 +0100 Subject: [PATCH] lavf/rawdec: Do not mark streams from raw subtitle demuxers as data streams. Improves "ffmpeg -i" output for raw dvbsub files. --- libavformat/rawdec.c | 11 +++++++++++ libavformat/rawdec.h | 4 +++- libavformat/version.h | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c index b38a4b5e5d..6249352d28 100644 --- a/libavformat/rawdec.c +++ b/libavformat/rawdec.c @@ -91,6 +91,17 @@ fail: return ret; } +int ff_raw_subtitle_read_header(AVFormatContext *s) +{ + AVStream *st = avformat_new_stream(s, NULL); + if (!st) + return AVERROR(ENOMEM); + st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE; + st->codecpar->codec_id = s->iformat->raw_codec_id; + st->start_time = 0; + return 0; +} + int ff_raw_data_read_header(AVFormatContext *s) { AVStream *st = avformat_new_stream(s, NULL); diff --git a/libavformat/rawdec.h b/libavformat/rawdec.h index a464bbb432..3eb416b8ee 100644 --- a/libavformat/rawdec.h +++ b/libavformat/rawdec.h @@ -41,6 +41,8 @@ int ff_raw_audio_read_header(AVFormatContext *s); int ff_raw_video_read_header(AVFormatContext *s); +int ff_raw_subtitle_read_header(AVFormatContext *s); + int ff_raw_data_read_header(AVFormatContext *s); #define FF_RAWVIDEO_DEMUXER_CLASS(name)\ @@ -83,7 +85,7 @@ AVInputFormat ff_ ## shortname ## _demuxer = {\ .name = #shortname,\ .long_name = NULL_IF_CONFIG_SMALL(longname),\ .read_probe = probe,\ - .read_header = ff_raw_data_read_header,\ + .read_header = ff_raw_subtitle_read_header,\ .read_packet = ff_raw_read_partial_packet,\ .extensions = ext,\ .flags = flag,\ diff --git a/libavformat/version.h b/libavformat/version.h index 70e868ffbc..824b9e7cd6 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -33,7 +33,7 @@ // Also please add any ticket numbers that you believe might be affected here #define LIBAVFORMAT_VERSION_MAJOR 58 #define LIBAVFORMAT_VERSION_MINOR 23 -#define LIBAVFORMAT_VERSION_MICRO 100 +#define LIBAVFORMAT_VERSION_MICRO 101 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \