-
Notifications
You must be signed in to change notification settings - Fork 10
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
Document mapping into containers #112
Comments
There is an ogg mapping document here: https://www.xiph.org/flac/ogg_mapping.html |
I can write something for ogg, perhaps the matroska-codecs RFC should be referenced, that's all well defined. I can't figure out the status of FLAC-in-MP4 though, it seems quite a mess with lots of bits and pieces. I have zero knowlegde of MP4, so I'd appreciate some help. Does anybody know who to contact on this matter? There is a draft mapping: https://github.com/xiph/flac/blob/master/doc/isoflac.txt I've read the issue reports multiple times, but I don't understand what is what, and what the actual problem is. Similarly, I'm at a loss about whether code-points can be already registered, or whether this should happen after the flac specification becomes an RFC. |
Little note on mappings: The current documents are a bit unclear to me how the |
I would argue seekpoints are not in any way usable for FLAC files embedded in a container. First because the container will provide its own seeking method, and second because as you say the offsets are changed on remuxing, especially when other streams like video are also placed in that container. The seektable is embedded in Ogg/Matroska/MP4 streams but it serves no purpose other than being handy on demuxing the FLAC stream back to a file (which I presume is not a use case encountered often). Case in point: libFLAC only uses a seektable in a non-embedded FLAC stream. For Ogg FLAC streams, it ignores the seektable altogether. Perhaps a note should be added to the spec that a seektable metadata block may be encapsulated, but that is serves no purpose at all? Maybe we should even recommend to drop the seektable on embedding? |
I think clarification is needed. However I'm not sure about "that is serves no purpose at all":
I think that a simple clarification would allow for all the above and keep being compatible without any downsides. It could read something similar to this: The offsets are within the FLAC bitstream. Any overhead added by containers is not included. Therefore when used inside containers the offsets provide a minimal offset in the physical bitstream which can aid seeking even when used within containers. It is save to restore seektables as-is when a) demuxing to native FLAC, b) remuxing into a different container. Side note: Offsets are stored relative to the first audio block. So even if the container stores the headers in a different section (e.g. in the tail of the file, or provide them externally (think SIP/SDP)) the offsets are still valid. PS: Maybe this discussion should go into it's own ticket. |
The registration of the IDs used in MP4 is complete, |
As we did for FFV1, we should document mapping into common containers in order to be clear about how to do so.
"fLaC", METADATA_BLOCK_STREAMINFO, METADATA_BLOCK in track header
FRAME in container "blocks".
And document the known issues e.g. METADATA_BLOCK_STREAMINFO info is sometimes (file "cut") not relevant.
The text was updated successfully, but these errors were encountered: