[NUT-devel] Info packets in NUT stream (spec bugs?)

Oded Shimon ods15 at ods15.dyndns.org
Sat Nov 4 23:02:04 CET 2006


On Sat, Nov 04, 2006 at 10:47:45PM +0100, Michael Niedermayer wrote:
> Hi
> 
> On Sat, Nov 04, 2006 at 03:53:13PM +0200, Oded Shimon wrote:
> > hmm, several bugs found in spec?
> [...]
> > > the structure of a undamaged file should look like the following,
> > > [...]
> > > file:
> > >     file_id_string
> > >     while(!eof){
> > >         packet_header, main_header, packet_footer
> > >         reserved_headers
> > >         for(i=0; i<stream_count; i++){
> > >             packet_header, stream_header, packet_footer
> > >             reserved_headers
> > >         }
> > >         while(next_code == info_startcode){
> > >             packet_header, info_packet, packet_footer
> > >             reserved_headers
> > >         }
> > >         if(next_code == index_startcode){
> > >             packet_header, index_packet, packet_footer
> > >         }
> > >         if (!eof) while(next_code != main_startcode){
> > >             if(next_code == syncpoint_startcode){
> > >                 packet_header, syncpoint, packet_footer
> > >             }
> > >             frame
> > >             reserved_headers
> > >         }
> > >     }
> > 
> > Is it supposed to be impossible to write an info packet without writing an 
> > entire main header set?
> 
> the text above would suggest so ...
> is there a problem with this?
> does it not match something which was agreed upon? (no i dunno)
> 
> the possibility to write info packets anywere was removed in
> r16507
> at that time we still had info streams, which where later droped

There were too many info flamewars for me to remember :)

> also for the case of realtime streams where song info is updated at the
> song start, well there must be a main header there anyway or you cant
> start listening ...
> the exception would be if the main header is transmitted out of band with
> SDP or similar but then the info packets could as well be transmitted
> out of band instead of blindly sending them duplicated a few times ...

Why would i need to repeat the main headers just for a song change? it 
involves no codec change or anything else (which is illegal in NUT 
anyway), just a change of songs, which means nothing but a change of 
metadata... This is a radio, the main headers are only given for you once 
at connect (which btw should carry the metadata of the _current_ song), 
but the metadata can change frequently, so you need to send new info 
packets, no need to send with it the entire bloated vorbis header...

- ods15



More information about the NUT-devel mailing list