On Mon, 19 Jun 2017, Jan Ekstrom wrote:
Hi,
On Mon, Jun 19, 2017 at 1:23 PM, Martin Storsjö <[email protected]> wrote:
However what I'm left wondering is as a next step, after making this
possible at all, is what should be the default? If the default isn't
compatible with apple tools, I'm pretty sure it'll be a very frequently
asked question at least. I guess it's doable via the -tag flag on the
command line or something like that, but it feels a little clunky.
Just in case nobody had noticed yet, there are actual differences in
the limitations of what you can do with the streams in the container
between 'hev1' and 'hvc1'.
Quoting 14496-15:
- "For a video stream that a particular sample entry applies to, the
video parameter set, sequence parameter sets, and picture parameter
sets, shall be stored only in the sample entry when the sample entry
name is 'hvc1', and may be stored in the sample entry and the samples
when the sample entry name is 'hev1'."
- "When the sample entry name is 'hvc1', the default and mandatory
value of array_completeness is 1 for arrays of all types of parameter
sets, and 0 for all other arrays. When the sample entry name is
'hev1', the default value of array_completeness is 0 for all arrays."
So yea, HEVC1 let us do a lot of stuff including putting parameter
sets in-band, while HVC1 specifically notes that we don't have
anything like that in-band.
Yup, I know that. Although this is pretty much what it was with avc1 in
mp4 already, right? So in such a case, having to manually specify the tag
when you want to do the less-common case of using in-band parameter set
changes isn't all that bad to me.
Thinking even further, when writing non-fragmented mp4, you could even
check the content of the muxed NAL units, and decide on what tag to use
when finishing the moov.
// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel