Comments (9)
Based on #21 (comment), it seems that any change in any of the static metadata parameter would trigger the creation of a new sample entry. In other words, when splicing 2 single-track files, unless they have exactly the same sample description entry (bit comparison), you have to create 2 sample entries.
It is not necessarily a problem but if we wanted to be able to use only one sample entry, we could keep in the sample entry only the parameters that are needed to create the codecs
value (see #22) and move all the others to sample groups (e.g. Ambisonics Demixing Sample Group). These sample groups would be mostly constant, except for tracks resulting from splicing of tracks, where you would have long ranges of constant sample grouping.
from iamf.
Does it mean that the fields inside sampleentries should be same if we support both a single track and multiple tracks?
from iamf.
In this issue, I'm only considering single track. Splicing of content with multiple tracks is more complicated.
from iamf.
Let me check my understanding.
For example when we try to splice 2 single-track files, for example one for Channel Audio with 10s duration and the other one for Ambisonics with 10s duration.(i.e the spliced file with 20s duration would have Channel audio for the first 10s and Ambisonics for the other 10s.)
If static metadata locates in sample entry, we need two sample entries to splice it. But if we move static metadata to samplegroup, then one sample entry can work for it while we need one sample group for the first file and the other sample group for the other file.
Am I correct?
from iamf.
Yes.
from iamf.
My assumption on Non-timed metadata which was not changed at all in a track was in contents point of view and did not consider the splicing.
Now I understand that we need to consider the splicing. So, the Non-timed metadata can be changed sometimes (not frame by frame) in a track in file format point of view for the splicing case.
In this sense, does this mean that stsd box has multiple sample entries for the splicing?
from iamf.
Yes.
Theoretically, in ISOBMFF you could splice 2 single-file tracks that have very different sample entries, for example different codecs as long as the handler stays the same. In this case, the resulting file would have 1 track with 2 sample entries. However, such theoretical tracks would be problematic for players. In particular, the codecs
parameter only describes the first sample entry. So if you'd change the codec mid-track (e.g. from Opus to AAC-LC), players might have a problem.
In practice, even with the same codec, splicing 2 single-file tracks could produce also 2 sample entries. For example, with AV1, if you splice 2 single-file tracks that have different profiles or levels, you can decide to keep one sample entry describing the maximum profile and level or have 2 entries, each with different profiles or levels.
In the IAC case, I think the spec should be such that :
a) processing sample entries when splicing is simple, typically as simple as "do a binary comparison of the 2 inputs sample entries and if they differ produce 2 output sample entries",
b) splicing minimizes the number of sample entries in the output. This can be achieved by having specific rules such as "compare the fields, if the fields A, B, C differ between sample entries 1 and 2, create a sample entry with max (A1,A2), max(B1,B2) max(C1,C2)" or by moving as much information into sample groups.
from iamf.
Thanks a lot for your kind explanation. Okay. I think that it makes sense.
from iamf.
We will use a simple byte comparison of the sample description entries to determine if splicing is possible. The amount of data in the sample description should be minimized to maximize the opportunity for single sample description splicing.
from iamf.
Related Issues (20)
- Backwards compatibility strategy HOT 3
- Consider increasing size of magic code HOT 2
- Should we require UTF-8 to not allow NUL character to avoid confusion with nul-termination? HOT 5
- Need to delete Sync OBU to address PR #432 HOT 2
- Update Figures
- Consider requiring playback to apply a gain when playing back a mono stream through stereo speakers HOT 1
- Need to discuss what exactly needs to be defined in codecs parameter.
- Make sure spec handling of zero-order ambisonics matches reference implementation HOT 2
- Could there be a use for demixing parameters with only a scene based audio element? HOT 1
- Need to restrict that a sample group of type 'roll' shall presents for codec_id = "Opus" or "mp4a" HOT 1
- Clarify if mixed order ambisonics is allowed and how to use it. HOT 1
- RFC 2119 text should be updated to include (and the spec should use) RFC 8174 HOT 1
- Section 1 Introduction Improvement
- Section 2 OBU Syntax Improvement
- Section 3 Profiles Improvement
- Section 4 Standalone IAMF Representation Improvement
- Section 5 ISOBMFF IAMF Encapsulation Improvement
- Section 6 IAMF Processing Improvement
- Section 7 IAMF Generation Process Improvement
- Section 9 Annex Improvement
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.