[NUT-devel] r21189 - trunk/DOCS/tech/nut.txt
Michael Niedermayer
michaelni at gmx.at
Fri Nov 24 23:35:24 CET 2006
Hi
On Fri, Nov 24, 2006 at 12:37:31PM -0500, Rich Felker wrote:
> On Fri, Nov 24, 2006 at 09:05:31AM -0800, Ralph Giles wrote:
> > On Fri, Nov 24, 2006 at 01:51:34PM +0100, michael wrote:
> >
> > > if anyone disagrees or has suggestions to improve it then shout
> >
> > > + codec_specific_data SHOULD contain exactly the essential global packets
> > > + needed to decode a stream, more specifically it SHOULD NOT contain packets
> > > + which contain only non essential metadata like author, title, ...
> >
> > For codecs with required stream-embedded metadata like ours, I think
> > this is just making work for the muxer. I'd allow such packets, and
> > instead say that implementations SHOULD maintain and prefer
> > container-level metadata with NUT. The packet should be there, even
> > if it's minimal.
>
> The packet can be there if it's required by the spec, but the metadata
> fields should all be blank, and should be completely ignored by any
> player. I would be in favor of a requirement that a compliant player
> MUST NOT present user-oriented metadata from codec bitstream
hmm, i see 3 possibilities for xiph codecs
1. store the metadata packet as is
2. dont store the metadata packet
3. store a dummy (empty) metadata packet
the metadata has to be parsed and put in a common structure at some
point in all cases be it the ogg demuxer, vorbis parser, nut muxer or
whatever otherwise the metadata would be pretty much unavailable to a nut
player (we cannot require every nut player to be able to parse codec
specific metadata)
1. would cause the data to be duplicated, if one gets edited by the user
we have contradicting data, thats very bad, also the stream headers
would be larger then needed, and the stream headers get repeated ...
2. would need some dummy or correct metadata packet to be generated somewhere
at the demuxer side together with the split global to xiph packets if
needed (muxing in ogg or vorbis, ... decoder needing it)
3. would need some dummy metadata packet to be generated somewhere at the
muxer side, and then be replaced if needed by the correct metadata at
the demuxer side, spliting still is needed for muxing in ogg or vorbis,
... decoders which need it
i dont like 1. at all, 2. and 3. are pretty much the same
if there is an established standard which requires all 3 packets to be
stored then no doubt we should follow that, thats also said in nut.txt
"the exact format is specified in the codec spec" but there is no such
thing, RTP says dont store metadata, other containers and APIs combine
the 3 packets in various ways ...
so if xiph "officially" says store all 3 with the following format
... in a single packet
then we will certainly do so, if not then i dont know what would be
best
also in a generic framework its likely that the metadata packet will
be parsed and the metadata be put into a common structure in the ogg
demxuer or some parser not the nut muxer, as other muxers also need
the metadata ...
similarely the reverse of this would be done in the ogg muxer or some
bitstream filter not the nut demuxer as other demuxers set metadata and
that should end up in the final ogg stream
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is
More information about the NUT-devel
mailing list