![]() ![]() ![]() I did not want to do the full analysis of audio blocks, as they are of unknown length and above average complexity. It carries on at the end of AC3 header analysis with the rest of the bitstream until it finds the skipfield in first audio block, then continues to look for 0x5838 signature from there. In a nutshell, what my code does is this: I left beta 5 downloading this morning, so have not gotten the chance to test it yet. Will check the analyzer output later in the evening. Nevermind my beta 4 nagging, just noticed you've commited that change 3 days ago. eac3 file behaves any differently, but there I discovered, that it is handled in CoreAudio and does not recognise the e-ac-3 frames embedded inbetween ac-3 frames, so it constructs the parameters and magicCookie as if it were a regular AC-3 file. I also tried to see, if importing a raw bitstream from. Likewise, I could not understand why, using mkv_ReadFrame() and readMkvPacket(), do I see only frames of 6656 bytes in size, consisting of 2 AC-3 syncframes, 25 bytes in size, respectively? Is this MKV-specific? But because of this, the audio track info is also missing the Atmos info in the FileImportController view. I looked at the MP42MKVImporter.m like you suggested, but I do not understand, why not build up all the relevant MP42AudioTrack parameters already while importing? That magicCookieForTrack is only executed, when I save the new file. I copy the code that I used to parse the OAMD object count from the e-ac-3 files. Unfortunately my vacation is over and so is my spare time to deal with this in detail. Quick look around in the Arlassian Sourcetree app offered only external diff and I’d need to do it manually file-by-file. PS is there an easy way to make a diff of my code changes to your git master? Eg if MI counts 11 objects, cookie has 0x0c, if 13 objects then 0x0e and if 15 objects then 0x10.Īlso tested: having byte 5 !=0, byte 6 =0 or byte 7 =0 makes tvOS think the stream is just E-AC-3 and play it in PCM either 5.1 or 7.1 (depending on dependent substream and channel location definition in dec3). The value here is always 1 larger than MI display. (See ETSI TS 102 366 for details) and determine object count from JOC payload in it (see ETSI TS 103 420).īytes 0-4 - standard meaning (TS 102 366)īyte 5 needs to be 0 - no dependent substreamsīyte 6 needs to be 1 - i have named it Atmos version (current atmos version is defined as 1.0 see the ETSI Revision to RDD 29:2014 Dolby Atmos® Bitstream Specificationīyte 7 seems to indicate object count - deductively observed from mp4 demo/test clips from Dolby Labs and comparing to MediaInfo object count display. I already can see that they indeed read the EMDF section in DD+ stream So the startingpoint is hidden here somewhere (am just studying the code) Luckily enough, they are also open source. It seems that the MediaInfo app does it best at the moment. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |