Comments (3)
We may need to add this kind of logic get sync pattern to Informative Annex.
The logic to get sync pattern would be like this;
- Step1: Check if the first 7bits is 1111100 or 1111110
- Step2: Check if the next 1 bit is 0(no extension) or 1 (extension)
- Step3-1: If there is no extension, then check if # of bytes of
obu_size
field and followed byia_code
. - Step3-2: If there is extension, check if # of bytes of
obu_size
field, followed by # of bytes of extension header indicated byextension_header_size
field and followed byia_code
.
So, the size of sync pattern would be regarded as at least 38 bits = 6bits (in step1) + 32bits (in step3). (There is a condition in step2, so actual bits would be more than this)
Its probability to occur within other OBUs in accident is about 2.7 x 10 ^(-11).
If we assume IAMF bitrate of 768kbps, it may occur one time per 3.5 x 10^5 second (one per 97.6 hours = about 4 days). Even broadcasting scenario, we have upper-layer signal which its payload is IAMF. So, actually probability in real world is much lower than this.
In addition, if we still feel uncomfortable, then we may add one more logic like this.
- Step4: Check if Magic Code OBU and followed by 7 bits = 0000000 or 0000010 (Codec Config OBU).
- (In this case, 2^6 = 64 times than the previous. I.e. one per 256 days)
If we need more,
-Step5: Check if Codec Config OBU and followed by 7 bits = 0000100 or 0000110. (one per 44.9 years)
from iamf.
That seems like enough for me.
Personally, I'd actually like to discourage seeking around for a magic code in general. Magic codes only occur at the beginning of a stream (so they aren't useful for random seeking), and we currently require streams to start with a magic code, so the utility of them is pretty low.
I would expect that all other container mappings would provide their own synchronization primitives if needed, e.g. in the case of ts https://aomediacodec.github.io/av1-mpeg2-ts/#start-code-based-format
from iamf.
Thank you for your opinion.
For the case of that SG members prefer to have more bits for ia_code, I listed a few candidate for it. Please see PR #447. I think that we can make a final decision on the call.
from iamf.
Related Issues (20)
- About mixes and sub-mixes HOT 1
- MixPresentationOBU syntax/semantics simplification HOT 3
- Example in 9.2 has unclear sentence
- Duplicate sentence
- Ordering of profiles in Section 9.1.4
- Channel clarifications HOT 2
- Profile clarification regarding channels
- Duplicate values of audio_element_ids in the same loop should be prohibited HOT 1
- Language tagging HOT 1
- Improve scalable channel group and layer text
- Base profile question
- Broken Ambix Reference HOT 9
- Registration of code points at MP4RA HOT 4
- Generate PDF version of spec HOT 4
- Put PDF or HTML version in repository before creating v1.0.0 git tag
- Object-Based input format HOT 1
- ISO-BMFF encapsulation should define a box inside the AudioSampleEntry for the configOBUs HOT 25
- A Reserved OBU should be a part of either Descriptors or a Temporal Unit. HOT 2
- Need to add change list since V1.0.0 release
- More updates on spec header
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iamf.