
Author: ods15 Date: Mon Nov 6 09:48:21 2006 New Revision: 187 Modified: trunk/libnut/muxer.c trunk/libnut/priv.h Log: slight change in header repetition method Modified: trunk/libnut/muxer.c ============================================================================== --- trunk/libnut/muxer.c (original) +++ trunk/libnut/muxer.c Mon Nov 6 09:48:21 2006 @@ -270,6 +270,7 @@ static void put_headers(nut_context_t * nut) { int i; nut->last_headers = bctello(nut->o); + nut->headers_written++; put_main_header(nut); for (i = 0; i < nut->stream_count; i++) put_stream_header(nut, i); @@ -456,12 +457,10 @@ } static void check_header_repetition(nut_context_t * nut) { - if (bctello(nut->o) > (1 << 23)) { - int i = 23; // ### magic value for header repetition - if (bctello(nut->o) > (1 << 25)) { - for (i = 26; bctello(nut->o) > (1 << i); i++); - i--; - } + if (bctello(nut->o) >= (1 << 23)) { + int i; // ### magic value for header repetition + for (i = 24; bctello(nut->o) >= (1 << i); i++); + i--; if (nut->last_headers < (1 << i)) { put_headers(nut); } @@ -575,6 +574,7 @@ nut->syncpoints.pts = NULL; nut->syncpoints.eor = NULL; nut->last_syncpoint = 0; + nut->headers_written = 0; for (nut->stream_count = 0; s[nut->stream_count].type >= 0; nut->stream_count++); @@ -658,7 +658,7 @@ int total = 0; if (!nut) return; - if (nut->last_headers < (1<<23)) put_headers(nut); // force 3rd copy of main headers + while (nut->headers_written < 2) put_headers(nut); // force 3rd copy of main headers put_headers(nut); if (nut->mopts.write_index) put_index(nut); Modified: trunk/libnut/priv.h ============================================================================== --- trunk/libnut/priv.h (original) +++ trunk/libnut/priv.h Mon Nov 6 09:48:21 2006 @@ -159,6 +159,7 @@ off_t last_syncpoint; // for checking corruption and putting syncpoints, also for back_ptr off_t last_headers; // for header repetition and state for demuxer + int headers_written; // for muxer header repetition off_t before_seek; // position before any seek mess off_t seek_status;