[FFmpeg-devel] [PATCH 2/5] tests/api-flac-test: ensure the frame is writable before writing to it
Anton Khirnov
anton at khirnov.net
Mon Mar 1 15:43:51 EET 2021
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.
--
Anton Khirnov
More information about the ffmpeg-devel
mailing list