Author: ods15
Date: Sat Nov 18 16:11:23 2006
New Revision: 240
Modified:
trunk/libnut/demuxer.c
Log:
some fixes, report if index was read, don't read it again,
and don't infinite loop when reaching EOF...
Modified: trunk/libnut/demuxer.c
============================================================
==================
--- trunk/libnut/demuxer.c (original)
+++ trunk/libnut/demuxer.c Sat Nov 18 16:11:23 2006
 -750,7
+750,7 
}
// failure
- if (len == -1 && (nut->before_seek +=
read_data) < 512*1024) {
+ if (len == -1 && (nut->before_seek +=
read_data) < 512*1024 && read_data > 0) {
nut->i->buf_ptr -= 7; // rewind 7 bytes, try again
flush_buf(nut->i);
return find_main_headers(nut);
 -889,8
+889,9 
memset(&nut->info[nut->info_count - 1], 0,
sizeof(nut_info_packet_t));
CHECK(get_info_header(nut,
&nut->info[nut->info_count - 1]));
nut->info[nut->info_count].count = -1;
- } else if (tmp == INDEX_STARTCODE &&
nut->dopts.read_index) {
+ } else if (tmp == INDEX_STARTCODE &&
nut->dopts.read_index&1) {
CHECK(get_index(nut)); // usually you don't care about
get_index() errors, but nothing except a memory error can
happen here
+ nut->dopts.read_index = 2;
} else {
CHECK(get_header(nut->i, NULL));
}
_______________________________________________
NUT-devel mailing list
NUT-devel mplayerhq.hu
http://lists.mplayerhq.hu/mailman/listinfo/nut-devel
|