[NUT] (ods15): r95 - /trunk/libnut/demuxer.c

Author: ods15 Date: Sat Mar 11 18:13:42 2006 New Revision: 95 Log: Add extendibility, there can be new headers anywhere Modified: trunk/libnut/demuxer.c Modified: trunk/libnut/demuxer.c ============================================================================== --- trunk/libnut/demuxer.c (original) +++ trunk/libnut/demuxer.c Sat Mar 11 18:13:42 2006 @@ -708,7 +708,11 @@ uint64_t tmp; int j; CHECK(get_bytes(nut->i, 8, &tmp)); - if (tmp != STREAM_STARTCODE) return -ERR_NOSTREAM_STARTCODE; + while (tmp != STREAM_STARTCODE) { + ERROR(tmp >> 56 != 'N', -ERR_NOSTREAM_STARTCODE); + CHECK(get_header(nut->i, NULL)); + CHECK(get_bytes(nut->i, 8, &tmp)); + } CHECK(get_stream_header(nut, i)); if (!nut->sc[i].pts_cache) { nut->sc[i].pts_cache = malloc(nut->sc[i].sh.decode_delay * sizeof(int64_t)); @@ -719,6 +723,11 @@ if (nut->dopts.read_index) { uint64_t tmp; CHECK(get_bytes(nut->i, 8, &tmp)); + while (tmp >> 56 == 'N') { + if (tmp == INDEX_STARTCODE) break; + CHECK(get_header(nut->i, NULL)); + CHECK(get_bytes(nut->i, 8, &tmp)); + } if (tmp == INDEX_STARTCODE) nut->seek_status = 2; nut->i->buf_ptr -= 8; flush_buf(nut->i);
participants (1)
-
syncmail@mplayerhq.hu