cinecert / asdcplib

AS-DCP and AS-02 File Access Library
Other
73 stars 55 forks source link

AS_02_IAB OpenWrite conformsToSpec param needs documentation and usage example #58

Open kblinova opened 4 years ago

kblinova commented 4 years ago

In SMPTE ST 2067-201:2019, conformsToSpec Element is defined as required with a value set to

IMF_IABTrackFileLevel0 = urn:smpte:ul:060E2B34.0401010D.01010201.02000000

At the minimum, the function declaration comments must include the definition of this value to ensure the caller does not omit it and creates an invalid IMF IAB track file.

It would also be nice to be able to see a usage of this method in one of the test programs (i.e. as-02-wrap).

As another possibility, this parameter could be removed (no other format exposes this) and its value could be set inside the OpenWrite function to avoid creating an invalid file.

-- /**

palemieux commented 4 years ago

At the minimum, the function declaration comments must include the definition of this value to ensure the caller does not omit it and creates an invalid IMF IAB track file.

+1

It would also be nice to be able to see a usage of this method in one of the test programs (i.e. as-02-wrap).

I am not excited with modifying as-02-wrap, which is already pretty complex.

What about moving the reader and writer CLI at https://github.com/sandflow/iab-in-imf/tree/master/src/main/cpp to ASDCPLib, and using the opportunity to add simple unit tests?

As another possibility, this parameter could be removed (no other format exposes this) and its value could be set inside the OpenWrite function to avoid creating an invalid file.

It would be nice if the IAB core reader/writer could be used with future IMF specifications, which may not require IMF_IABTrackFileLevel0.

Perhaps a specialized Level0 writer class could be created.

jhursty commented 4 years ago

I think separate executables is a great idea and would prefer that approach. I have been considering a re-design of the cli similar to git and other multi-function packages where we would have, e.g., 'as02-wrap-iab' and 'as02-unwrap-iab' as the lowest level executables, which may later be incorporated into a larger framework that allows, e.g., 'as02 wrap iab '