On 5/27/2022 5:12 AM, Tomas Härdin wrote:
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.

I assume it may be affecting other library users, since it's a matter of passing an AVFrame with no reference counted buffers (nothing in buf[], only data[] pointers filled) and only the old channel layout API fields set to av_frame_ref() or anything that calls it, like avcodec_send_frame().

The amount of users of the new channel layout at this point is probably very small, since it's not present in any release. I can't say how many users passing AVFrames with non reference counted buffers are out there, but it's a supported scenario, so melt may not be the only case.



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

Works

/Tomas

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to