diff options
author | Aman Gupta <aman@tmm1.net> | 2018-02-23 13:38:33 -0800 |
---|---|---|
committer | Aman Gupta <aman@tmm1.net> | 2018-02-23 13:47:29 -0800 |
commit | 4f40d64e009869441ee63dad00b41e0a5bf7634d (patch) | |
tree | b150840fc66707038bd894dfce015dc8dbb745c1 | |
parent | 61ecfbc32aa2a5d02bd90a298496bf1b6ecb0762 (diff) | |
download | ffmpeg-4f40d64e009869441ee63dad00b41e0a5bf7634d.tar.gz |
avformat/mpegts: set AV_DISPOSITION_DEPENDENT for mix_type=0 supplementary audio
Signed-off-by: Aman Gupta <aman@tmm1.net>
-rw-r--r-- | fftools/ffmpeg.c | 1 | ||||
-rw-r--r-- | libavformat/avformat.h | 1 | ||||
-rw-r--r-- | libavformat/dump.c | 2 | ||||
-rw-r--r-- | libavformat/mpegts.c | 3 |
4 files changed, 7 insertions, 0 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index a37de2ff98..bea922b0aa 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -3592,6 +3592,7 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len) { "clean_effects" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_CLEAN_EFFECTS }, .unit = "flags" }, { "captions" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_CAPTIONS }, .unit = "flags" }, { "descriptions" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_DESCRIPTIONS }, .unit = "flags" }, + { "dependent" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_DEPENDENT }, .unit = "flags" }, { "metadata" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_METADATA }, .unit = "flags" }, { NULL }, }; diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 4ea1b5ab72..a2fe7c6bb2 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -845,6 +845,7 @@ typedef struct AVStreamInternal AVStreamInternal; #define AV_DISPOSITION_CAPTIONS 0x10000 #define AV_DISPOSITION_DESCRIPTIONS 0x20000 #define AV_DISPOSITION_METADATA 0x40000 +#define AV_DISPOSITION_DEPENDENT 0x80000 ///< dependent audio stream (mix_type=0 in mpegts) /** * Options for behavior on timestamp wrap detection. diff --git a/libavformat/dump.c b/libavformat/dump.c index e20902ce85..942e62a581 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -549,6 +549,8 @@ static void dump_stream_format(AVFormatContext *ic, int i, av_log(NULL, AV_LOG_INFO, " (clean effects)"); if (st->disposition & AV_DISPOSITION_DESCRIPTIONS) av_log(NULL, AV_LOG_INFO, " (descriptions)"); + if (st->disposition & AV_DISPOSITION_DEPENDENT) + av_log(NULL, AV_LOG_INFO, " (dependent)"); av_log(NULL, AV_LOG_INFO, "\n"); dump_metadata(NULL, st->metadata, " "); diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index bca7a7af4e..37a6aa8bff 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -1904,6 +1904,9 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type return AVERROR_INVALIDDATA; flags = get8(pp, desc_end); + if ((flags & 0x80) == 0) /* mix_type */ + st->disposition |= AV_DISPOSITION_DEPENDENT; + switch ((flags >> 2) & 0x1F) { /* editorial_classification */ case 0x01: st->disposition |= AV_DISPOSITION_VISUAL_IMPAIRED; |