The option went into the MpegTSContext struct and can be addressed via dictionary:
AVFormatContext * formatContext = NULL; /* enable mpeg-ts private stream recognition */ AVDictionary * dict = NULL; av_dict_set_int(&dict, "mpegts_recognize_private_streams", 1, 0); /* open file */ avformat_open_input(&formatContext, fileName, NULL, &dict); --- libavformat/mpegts.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index aeb2335..9c883a8 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -147,6 +147,8 @@ struct MpegTSContext { int resync_size; + int recognize_private_streams; + /******************************************/ /* private mpegts data */ /* scan context */ @@ -175,6 +177,8 @@ static const AVOption options[] = { {.i64 = 0}, 0, 1, 0 }, {"skip_clear", "Skip clearing programs.", offsetof(MpegTSContext, skip_clear), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, 0 }, + {"mpegts_recognize_private_streams", "Assign AVMEDIA_TYPE_DATA and AV_CODEC_ID_BIN_DATA to data streams", offsetof(MpegTSContext, recognize_private_streams), AV_OPT_TYPE_INT, + {.i64 = 0}, 0, 1, AV_OPT_FLAG_DECODING_PARAM }, { NULL }, }; @@ -705,6 +709,11 @@ static const StreamType ISO_types[] = { { 0 }, }; +static const StreamType ISO_type_private_stream[] = { + { 0x06, AVMEDIA_TYPE_DATA, AV_CODEC_ID_BIN_DATA }, + { 0 }, +}; + static const StreamType HDMV_types[] = { { 0x80, AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_PCM_BLURAY }, { 0x81, AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_AC3 }, @@ -800,6 +809,10 @@ static int mpegts_set_stream_info(AVStream *st, PESContext *pes, st->codec->codec_tag = pes->stream_type; mpegts_find_stream_type(st, pes->stream_type, ISO_types); + if (st->codec->codec_id == AV_CODEC_ID_NONE && + pes->ts->recognize_private_streams) { + mpegts_find_stream_type(st, pes->stream_type, ISO_type_private_stream); + } if ((prog_reg_desc == AV_RL32("HDMV") || prog_reg_desc == AV_RL32("HDPR")) && st->codec->codec_id == AV_CODEC_ID_NONE) { -- 1.9.1
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel