[NUT-devel] Info packets in NUT stream (spec bugs?)
Oded Shimon
ods15 at ods15.dyndns.org
Sat Nov 4 14:53:13 CET 2006
hmm, several bugs found in spec?
from spec:
> If a info packet is stored anywhere then a muxer MUST also store an identical
> info packet after every main-stream-header set
This is nonsense in real time streaming, isn't it?.. In real time
streaming, the only rule i suggest there should be is that after a
main-header set, there should be all global info packets (chapter_id==0),
and info packets applying to the current chapter. (e.g., if you joined in
the middle of a song, you should get the info packet telling about the
song)
> info_packet:
> stream_id_plus1 v
> chapter_id v
> chapter_start t
> chapter_len v
> [...]
> chapter_id
> Id of chapter this packet applies to. If zero, packet applies to whole
> file. Positive chapter_id's are real chapters and MUST NOT overlap.
> Negative chapter_id indicate a sub region of file and not a real
> chapter. chapter_id MUST be unique to the region it represents.
Ahem, negative?.. 'v' unsigned vlc ...
> 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?
And I have an API question for libnut demuxer:
for the case of info headers after main headers, I plan on looking for
them only once and give them to the caller together with the main header
information, but what should I do for the case of info packets found in
the wild? optional callback function?
- ods15
More information about the NUT-devel
mailing list