GithubHelp home page GithubHelp logo

Comments (9)

cconcolato avatar cconcolato commented on August 11, 2024

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.

sunghee-hwang avatar sunghee-hwang commented on August 11, 2024

Does it mean that the fields inside sampleentries should be same if we support both a single track and multiple tracks?

from iamf.

cconcolato avatar cconcolato commented on August 11, 2024

In this issue, I'm only considering single track. Splicing of content with multiple tracks is more complicated.

from iamf.

sunghee-hwang avatar sunghee-hwang commented on August 11, 2024

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.

cconcolato avatar cconcolato commented on August 11, 2024

Yes.

from iamf.

sunghee-hwang avatar sunghee-hwang commented on August 11, 2024

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.

cconcolato avatar cconcolato commented on August 11, 2024

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.

sunghee-hwang avatar sunghee-hwang commented on August 11, 2024

Thanks a lot for your kind explanation. Okay. I think that it makes sense.

from iamf.

tdaede avatar tdaede commented on August 11, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.