[NUT-devel] [nut]: r156 - trunk/libnut/demuxer.c
ods15
subversion at mplayerhq.hu
Sun Sep 24 16:18:28 CEST 2006
Author: ods15
Date: Sun Sep 24 16:18:27 2006
New Revision: 156
Modified:
trunk/libnut/demuxer.c
Log:
modify get_packet to not recurse on its own but let the caller do it.
makes saw_syncpoint more accurate.
Modified: trunk/libnut/demuxer.c
==============================================================================
--- trunk/libnut/demuxer.c (original)
+++ trunk/libnut/demuxer.c Sun Sep 24 16:18:27 2006
@@ -540,7 +540,7 @@
CHECK(get_bytes(nut->i, 1, &tmp));
} else {
CHECK(get_header(nut->i, NULL));
- return get_packet(nut, pd, saw_syncpoint);
+ return 3;
}
}
@@ -697,7 +697,7 @@
nut->seek_status = 0;
}
- err = get_packet(nut, pd, NULL);
+ while ((err = get_packet(nut, pd, NULL)) == 3);
if (err < 0) { // some error occured!
fprintf(stderr, "NUT: %s\n", nut_error(-err));
// rewind as much as possible
@@ -1046,8 +1046,11 @@
if (!(nut->seek_status & 1)) while (bctello(nut->i) < end || !end) {
int saw_syncpoint;
nut_packet_t pd;
+
buf_before = bctello(nut->i);
- CHECK(get_packet(nut, &pd, &saw_syncpoint)); // FIXME we're counting on syncpoint cache!! for the good_key later, and stopper_syncpoint
+ err = get_packet(nut, &pd, &saw_syncpoint); // FIXME we're counting on syncpoint cache!! for the good_key later, and stopper_syncpoint
+ if (err == 3) continue;
+ CHECK(err);
if (saw_syncpoint) {
if (stopper && !stopper_syncpoint && buf_before > stopper->pos - stopper->back_ptr + 15) {
@@ -1131,7 +1134,8 @@
while (bctello(nut->i) < min_pos) {
nut_packet_t pd;
- CHECK(get_packet(nut, &pd, NULL));
+ while ((err = get_packet(nut, &pd, NULL)) == 3);
+ CHECK(err);
push_frame(nut, &pd);
CHECK(skip_buffer(nut->i, pd.len));
}
More information about the NUT-devel
mailing list