[FFmpeg-devel] [PATCH 2/5] tests/api-flac-test: ensure the frame is writable before writing to it

James Almer jamrial at gmail.com
Mon Mar 1 15:46:16 EET 2021


On 3/1/2021 10:43 AM, Anton Khirnov wrote:
> Quoting James Almer (2021-02-24 15:01:03)
>> On 2/24/2021 7:03 AM, Anton Khirnov wrote:
>>> The encoder may keep a reference to frames that were sent to it, so the
>>> caller cannot modify them without checking first.
>>> ---
>>>    tests/api/api-flac-test.c | 4 ++++
>>>    1 file changed, 4 insertions(+)
>>>
>>> diff --git a/tests/api/api-flac-test.c b/tests/api/api-flac-test.c
>>> index 3fea3258f3..7c96a4d99e 100644
>>> --- a/tests/api/api-flac-test.c
>>> +++ b/tests/api/api-flac-test.c
>>> @@ -154,6 +154,10 @@ static int run_test(AVCodec *enc, AVCodec *dec, AVCodecContext *enc_ctx,
>>>            enc_pkt.data = NULL;
>>>            enc_pkt.size = 0;
>>>    
>>> +        result = av_frame_make_writable(in_frame);
>>
>> This is going to make a copy of the existing frame data, only for the
>> code below to completely replace it. It will also make copies (not
>> references) of side data, if any.
>> Maybe instead unref it, set nb_samples, format and channel_layout again,
>> then call av_frame_get_buffer() (Factoring the existing relevant code
>> into its own function).
>>
>> LGTM either way.
> 
> Watches pelcome. I'd rather not spend more effort on this code than
> strictly necessary.

Sure, apply this and i'll change it later.


More information about the ffmpeg-devel mailing list