mxfdump --dict smpte#35
Conversation
|
Here a windows build, again, use --dict smpte to see the new functionality. |
| ``MXFMetaDictionary_smpte.h`` (the hand-maintained complement) when CMake | ||
| sees a file named ``MXFMetaDictionary_smpte.gen.h`` next to ``CMakeLists.txt``. | ||
|
|
||
| Run manually before building. With no arguments it downloads the registers |
There was a problem hiding this comment.
Just to make sure I get this: The state of SMPTE Label registry is downloaded prior to building and then embedded into the build so that the build is fully offline. Correct? Was this also checked for the MSVC type builds of the release workflow?
There was a problem hiding this comment.
Rebuilding the dict is a manual step, i did not automate that because i really don't like dependencies to the "wild internet" in fully automated workflows for security reasons
|
A couple of links to MXF libraries powered by the SMPTE Metadata Registers, just in case it's of interest or useful on this topic: |
Thanks a lot Tom, very happy to get additional input especially if its from you :) Very interesting read overall but i would not (yet) apply any of these strategies in MXFDump.cpp because currently we only do "light" changes and try to match the surrounding coding style. |
|
@haraldjordan Happy to chime-in. Can you provide more context on the short- and long-term goals? |
Hey @palemieux thanks a lot for joining in, very welcome! |
|
Couple of thoughts/questions:
|
|
@palemieux thanks for sharing your thoughts!
Up in front, the goal currently is limited to MXFDump which is a standalone project, not related to BMX. I'll need to see how it goes/where it leads and i'm not yet able to estimate if any part of BMX could really benefit from using similar techniques. For the rest of this message, please have in mind at least for the modifications i did in MXFDump, i had the following existing principle in mind: (cite from MXFDump.cpp introduction comment) Anyway, executing the code generators to get the C macros header from the xmls is not needed in order to build MXFDump (we ship the latest generated .h files in the repo), so developing MXFDump itself is not influenced by the way how the C Macros are generated. Therefore i adopted the existing generator .py script to be able to work with the xmls generated by RegXML, generated the C Macros and tested MXDFump with it. First thing i saw is that lots of translations is missing, e.g. Partitions and Labels. Using Regxml means either to change MXFDump to work with an xml parser and parse them at runtime (which violates the comment above about no dependencies) and in addition to that, we'd need java/maven to be available when rebuilding the xml's which makes the process tedious. Additionally the Labels are missing, so it would be a mix of using the original Labels.xml and Regxmls output. That all sounds like it's not really worth the efforts to be honest. But maybe i have been blind so far and overlook something very important? I was especially interested to see if i find the longstanding issues but no luck.. could you clarify what you mean please? |
This adds a new optional mode to MXFDump --dict smpte that changes how labels are being resolved. It leads to a good result from user perspective but now that its done, from developer perspective, i am not even sure if its a good idea to really push this into MXFDump.cpp. A better fit would be a complete new dumper but this would have been even much wore work. Seriously, going on with SMPTE dict instead of the old ones, i would have needed to replace about 50% of the existing code, making it very dirty to keep both.
If we push this, the general plan to eventually keep only the new smpte dict in future is more or less set, we cannot keep both forever. As using the smpte dict also changes the string label presentation, some users might not be OK with dumping the existing dict but from my perspective it is better to stick to the standard and present the labels as defined by SMPTE.
Considerations/Decisions made:
Pros:
Cons:
Opinions very welcome.