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".