[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