[FFmpeg-devel] [PATCH] avutil/avframe: fix channel layout checks in av_frame_copy()

Tomas Härdin tjoppen at acc.umu.se
Fri May 27 11:12:01 EEST 2022


ons 2022-05-25 klockan 14:15 -0300 skrev James Almer:
> Normally, both the source and dest frame would have only the old API
> fields
> set, only the new API fields set, or both set. But in some cases,
> like when
> calling av_frame_ref() using a non reference counted source frame
> where only
> the old channel layout API fields were populated, the result would be
> the dst
> frame having both the new and old fields populated.
> 
> This commit takes this into account and fixes the checks by calling
> av_channel_layout_compare() only if the source frame has the new API
> fields
> set, and doing sanity checks for the source frame old API fields if
> the new
> ones are not set.

A bit of context for those wondering: this is part of ensuring melt
works both with FFmpeg 5.0 and the new channel layout API. They're
still using deprecated things, but one step at a time.

> 
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libavutil/frame.c | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)

Works

/Tomas



More information about the ffmpeg-devel mailing list