> -----Original Message-----
> From: ffmpeg-devel <[email protected]> On Behalf Of Nicolas
> George
> Sent: 2021年3月1日 23:07
> To: FFmpeg development discussions and patches <[email protected]>
> Subject: Re: [FFmpeg-devel] [PATCH V4 2/4] libavfilter/buffersink.c: unref
> private_ref when frame leaves libavfilter
> 
> Guo, Yejun (12021-03-01):
> > Actually, I think private_ref in libavfilter can only be used for an
> > exclusive usage at a time.
> 
> Exactly. If we use it for this, then we cannot use for anything else in 
> libavfilter.
> This use seems too specific to warrant dedicating such an unique field to it,
> even though we do not have a better use in sight.
> 
> > As Paul mentioned, I think AVFrame.metadata is a better choice.
> 
> If you can express it as a string or set of strings with a clear syntax that 
> can
> easily be parsed, then possibly, yes.

ooo, it is not easy to express the bounding boxes as strings in 
AVDictionaryEntry.value,
the bounding box has several data members, and they are data and have high 
possibility
to contain '\0' in the middle of the data. So, we might not use 
AVFrame.metadata.

So, where to put the bounding boxes (object detection result generated by 
vf_dnn_detect),
I now see several possible methods which all have positive/negative comments:

1. Add into side data
The final result is to be in side data since it might be used by new encoders 
in the future, 
but this method changes the API.

1.1 We just add a new enum for side data, and keep the .h file (for structs) 
internal at first.
There's comment that this is not allowed. (I personally prefer this one.)

1.2 We add enum for side data, and also export the .h file as part of FFmpeg 
API.
The risk is that we might change the structs in .h file later, it breaks API.
We need a versioning management for the struct, just like film grain as 
explained
at http://ffmpeg.org/pipermail/ffmpeg-devel/2021-February/276586.html .

2. Use private_ref
Use private_ref for bounding boxes at first, and then change to side data when 
it is required.
The disadvantage is that during the period, we cannot use it for anything else 
in libavfilter.

any comment or any other suggestion? thanks.

_______________________________________________
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