[FFmpeg-devel] [PATCH] avcodec/dolby_e: set constant frame_size

Marton Balint cus at passwd.hu
Mon Jan 4 22:32:51 EET 2021



On Mon, 4 Jan 2021, Nicolas Gaullier wrote:

>> De : Nicolas Gaullier <nicolas.gaullier at cji.paris> 
>> Envoyé : mardi 15 décembre 2020 18:13
>> À : ffmpeg-devel at ffmpeg.org
>> Cc : Nicolas Gaullier <nicolas.gaullier at cji.paris>
>> Objet : [PATCH] avcodec/dolby_e: set constant frame_size
>>
>> Fixes pts generation.
>>
>> Setting frame_size in dolby_e_init() or get_audio_frame_duration() can result in a bad duration value for the first packet if dolby_e is muxed in a container having a different sample_rate (ex:
>> container @48KHz, DolbyE @44.8KHz).
>> Maybe adding a parser to dolby_e would fix the issue and makes it possible to set frame_size at decoder init which seems the best place.

I am not sure I understand this. It is suprising that you say that 
frame_size cannot be set in dolby_e_init(), why does it matter? It can 
only be FRAME_SAMPLES, no other values can happen. In that sense it is 
similar to sample_fmt, which I also don't see why it is set in every 
decode call, and not only once, in init.

>> ---
>> libavcodec/dolby_e.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/libavcodec/dolby_e.c b/libavcodec/dolby_e.c index 429612ec08..b0e6d6aee3 100644
>> --- a/libavcodec/dolby_e.c
>> +++ b/libavcodec/dolby_e.c
>> @@ -577,6 +577,7 @@ static int filter_frame(DBEContext *s, AVFrame *frame)
>>         reorder = ch_reorder_n;
>>
>>     frame->nb_samples = FRAME_SAMPLES;
>> +    s->avctx->frame_size = FRAME_SAMPLES;

If you still believe that setting this is required in every decode call, 
then I'd say it would be cleaner to set this at dolby_e_decode_frame where 
other avctx parameters are also set.

Thanks,
Marton

>>     if ((ret = ff_get_buffer(s->avctx, frame, 0)) < 0)
>>         return ret;
>> 
>> --
>> 2.27.0.windows.1
>
> Hello,
> Just a ping for this little patch
> Thx
> Nicolas
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list