James Almer (12025-01-22):
> Actually, i just realized i can't store an AVDictionary or a string in a
> struct like this that's meant to be stored as side data. It has a to be a
> flat array with no pointers to separate arrays.

Hum, good point.

That limitation of side data is very annoying. We should get rid of it,
especially since it is not that hard.

The issue is that side data has to be flat because its refcounting is
built on top of AVBufferRef when AVBufferRef if only good for flat data
(if it is even good for that).

So, plan:

- Add to AVSideDataDescriptor function pointer for free() and clone()
  and ref().

- For existing side data types, these three fields are set to an
  implementation working with AVBufferRef.

- For new side data types and side data types we want to de-flatten, we
  populate these fields with an adequate function.

That would be a tremendous enhancement to the side data system.

(Having a structure for every type in FFmpeg that contains function
pointers to free, ref, clone, display, parse, hash, compare, etc.,
elements of that type was a project of mine. It went nowhere for the
obvious reason it requires an efficient strings API.)

Regards,

-- 
  Nicolas George
_______________________________________________
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