On 5/2/2024 7:11 AM, Niklas Haas wrote:
On Fri, 26 Apr 2024 16:29:03 -0300 James Almer <[email protected]> wrote:
On 4/26/2024 9:27 AM, Niklas Haas wrote:
From: Niklas Haas <[email protected]>

Many filters modify certain aspects of frame data, e.g. through resizing
(vf_*scale* family), color volume mapping (vf_lut*, vf_tonemap*), or
possibly others.

When this happens, we should strip all frame side data that will no
longer be correct/relevant after the operation. For example, changing
the image size should invalidate AV_FRAME_DATA_PANSCAN because the crop
window (given in pixels) no longer corresponds to the actual image size.
For another example, tone-mapping filters (e.g. from HDR to SDR) should
strip all of the dynamic HDR related metadata.

Since there are a lot of similar with basically similar operations, it
make sense to consolidate this stripping logic into a common helper
function. I decided to put it into libavutil as it may be useful for API
users as well, who often have their own internal processing and
filtering.

Maybe instead of "changed", which is a concept that doesn't belong to a
frame but to a process, use a name that references side data that
depends on specific properties (dimensions, color props, etc).

Also, don't make it depend on AVFrame, but AVFrameSideData instead, so
it can be reused in other contexts (Use the av_frame_side_data_*
namespace for it).

Do you have a proposed name?

I can think of:
- av_frame_side_data_remove_aspect()
- av_frame_side_data_remove_dependent()
- av_frame_side_data_remove_category()

No, still one function, but without a reference to something having "changed".

Maybe reuse the existing AVSideDataProps enum and add entries that define the kind of side data (Like i said above, relevant to color properties, dimensions, etc), then add a new function like:

/**
 * Remove and free all side data instances of the given property.
 */
av_frame_remove_side_data_by_prop(AVFrame *frame, enum AVSideDataProps prop);

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to