Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question about unregistered packet properties #2830

Open
rbouqueau opened this issue May 6, 2024 · 1 comment
Open

Question about unregistered packet properties #2830

rbouqueau opened this issue May 6, 2024 · 1 comment

Comments

@rbouqueau
Copy link
Member

GPAC offers the possibility to create unregistered properties using a string identifier. This opens great possibilities but GPAC doesn't handle collisions at all.

There is only one property with a given name per packet. This is an issue for example when a stream of packet carry the property and the packet rate is diminished: some of these properties are lost.

Another example (related to #2748) is id3 metadata. When carried in MPEG-TS PES streams they may not have any PTS. We then assign them to the next (audio) packet. However if we get several of them at once they are not merged but silently lost ; the mpeg2-ts demuxer could merge them but the current API doesn't allow it.

Just triggering the discussion at this point on what to do.

@jeanlf
Copy link
Member

jeanlf commented May 23, 2024

This also applies to registered properties set on a packet.

I think we need a way to decide programmatically what to do with a given property in case we change the packet duration, split the packet or merge packets together. Not all properties need this obviously, but some do.

However if we get several of them at once they are not merged but silently lost

I would say this is the responsibility of the muxer to do this merging before setting the property (at least until we solve the above point).

The question is trickier when using user-defined properties from outside libgpac, we would need custom extensions (JS, Python?) to do this ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants