What are you guys thinking? I'm seeing the cleanest solution as being:

* Remove av_metadata_updated() and move any metadata copying/change
detection into read/seek
* The application will then have to check metadata dicts for updates

>From the proposed changes, I'm seeing the following problems:

1) Dropping versioning from AVDict and changing to a flag would result
in problems when multiple things want to watch metadata.

2) Dropping versioning from AVDict and setting a flag in
AVFormatContext, AVStream, etc would require modifications to each
demuxer to know about the flags and when to set them. It's been
mentioned that modifying AVDict with a version just seems too
single-use for living in a generic structure, but off the top of my
head, the following use versions/some form of change tracking for hash
tables: glib, Java, Python, C#, objective-c. This is, I think, a
fairly-normal pattern that is actually kinda nice to have around.

3) Keep a record of what changes and present that to the app: I'm not
sure how useful a diff would be as this data is usually display-only,
and updating displayed data with identical data typically won't make a
difference.

Thanks,
-Andrew
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to