[FFmpeg-trac] #9190(avformat:new): dashenc creates web-unplayable files with copied opus streams
FFmpeg
trac at avcodec.org
Thu Apr 15 07:01:47 EEST 2021
#9190: dashenc creates web-unplayable files with copied opus streams
--------------------------------------+------------------------------------
Reporter: aphysically | Owner:
Type: defect | Status: new
Priority: normal | Component: avformat
Version: git-master | Resolution:
Keywords: dash dashenc | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------------+------------------------------------
Comment (by aphysically):
Replying to [comment:1 jamrial]:
> Can you apply this patch and re-run the command line to create
dash/dashbad, to see if it fixes it?
>
> {{{
> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
> index 6e0d9d7496..cc4a9e6f62 100644
> --- a/libavformat/mpegts.c
> +++ b/libavformat/mpegts.c
> @@ -2018,7 +2018,6 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc,
AVStream *st, int stream_type
> if (!st->codecpar->extradata)
> return AVERROR(ENOMEM);
>
> - st->codecpar->extradata_size =
sizeof(opus_default_extradata);
> memcpy(st->codecpar->extradata, opus_default_extradata,
sizeof(opus_default_extradata));
>
> channel_config_code = get8(pp, desc_end);
> @@ -2030,8 +2029,10 @@ int ff_parse_mpeg2_descriptor(AVFormatContext
*fc, AVStream *st, int stream_type
> st->codecpar->extradata[19] =
opus_stream_cnt[channel_config_code];
> st->codecpar->extradata[20] =
opus_coupled_stream_cnt[channel_config_code];
> memcpy(&st->codecpar->extradata[21],
opus_channel_map[channels - 1], channels);
> + st->codecpar->extradata_size = 19 +
(st->codecpar->extradata[18] ? 2 + channels : 0);
> } else {
> avpriv_request_sample(fc, "Opus in MPEG-TS -
channel_config_code > 0x8");
> + st->codecpar->extradata_size =
sizeof(opus_default_extradata);
> }
> st->need_parsing = AVSTREAM_PARSE_FULL;
> st->internal->need_context_update = 1;
> }}}
This results in a working stream with the dashbad command. See
[https://stream.gably.net/images/dash/dashtest/stream.mpd] for a test
stream with the copied opus and your patch ("dashtest").
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9190#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list