[NUT-devel] Info packets in NUT stream (spec bugs?)
Oded Shimon
ods15 at ods15.dyndns.org
Sun Nov 5 20:32:44 CET 2006
On Sun, Nov 05, 2006 at 07:07:22PM +0100, Michael Niedermayer wrote:
> On Sun, Nov 05, 2006 at 09:48:46AM +0200, Oded Shimon wrote:
> > On Sun, Nov 05, 2006 at 12:19:53AM +0100, Michael Niedermayer wrote:
> > > the big problem with simply allowing arbitrarily placed info is that it
> > > makes the info useless for the normal nut file case as the info cannot be
> > > found its like a dvd with chapters but the information about where the
> > > chapters begin is stored at the begin of the chapters, you end up with
> > > a O(n) search ...
> > > so ive some concerns with just saying its ok for streaming, as that
> > > leads to nut files laying around which are encoded for streaming ...
> >
> > The proposal I had for this is - info packets not written after main
> > headers are only allowed in real time streaming, and must have
> > chapter_id!=0, and any info packets written after main headers, both in
> > file and in streaming scenario, MUST be repeated together with all main
> > headers. No demuxer would have to search anything past main headers, any
> > info packets given during demuxing is "information update". In the file
> > scenario, all info must be written after the main headers, so no searching
> > necessary.
>
> hmm, rich what is your oppinion about that? iam unsure if iam against it
> or not ...
- ods15
-------------- next part --------------
Index: DOCS/tech/nut.txt
===================================================================
--- DOCS/tech/nut.txt (revision 20666)
+++ DOCS/tech/nut.txt (working copy)
@@ -180,11 +180,15 @@
packet_header, index_packet, packet_footer
}
if (!eof) while(next_code != main_startcode){
- if(next_code == syncpoint_startcode){
- packet_header, syncpoint, packet_footer
+ packet_header, syncpoint, packet_footer
+ do{
+ frame
+ }while(next_code == framecode);
+ reserved_headers
+ if (realtime_stream) while(next_code == info_startcode){
+ packet_header, info_packet, packet_footer
+ reserved_headers
}
- frame
- reserved_headers
}
}
@@ -836,9 +840,15 @@
Info:
-----
-If a info packet is stored anywhere then a muxer MUST also store an identical
+All info packets stored after a main header set MUST also have an identical
info packet after every main-stream-header set
+All info packets not stored after a main header set MUST have
+chapter_id!=0 .
+
+Info packets MUST be written after main header sets in non realtime
+streams.
+
If a demuxer has seen several info packets with the same chapter_id and
stream_id then it MUST ignore all but the one with the highest position in
the file
More information about the NUT-devel
mailing list