diff -u -r -x 'config*' -x '*.o' -x '*.a' ./libmpdemux/demux_mpg.c ../../mpl_new/libmpdemux/demux_mpg.c --- ./libmpdemux/demux_mpg.c 2011-03-28 16:37:45.000000000 -0400 +++ ../../mpl_new/libmpdemux/demux_mpg.c 2010-06-20 10:30:46.000000000 -0400 @@ -979,11 +979,9 @@ } else if(sh_video->format == 0x10000004) { //mpeg4 if(i==0x1B6) { //vop (frame) startcode - if ( (peek_nal_descriptor & 0xc0) == 0) // AJS 0x1b6 and then 00xxxxxx binary is an IDR (keyframe) - break; - //int pos = videobuf_len; - //if(!read_video_packet(d_video)) break; // EOF AJS this might lookahed, but I think it reads too far - //if((videobuffer[pos+4] & 0x3F) == 0) break; //I-frame AJS this bitwise AND is backwards I think + int pos = videobuf_len; + if(!read_video_packet(d_video)) break; // EOF + if((videobuffer[pos+4] & 0x3F) == 0) break; //I-frame } } else if(sh_video->format == 0x10000005){ //h264 if((i & ~0x60) == 0x105) break; diff -u -r -x 'config*' -x '*.o' -x '*.a' ./libmpdemux/parse_es.c ../../mpl_new/libmpdemux/parse_es.c --- ./libmpdemux/parse_es.c 2011-03-28 16:39:45.000000000 -0400 +++ ../../mpl_new/libmpdemux/parse_es.c 2009-05-12 22:58:57.000000000 -0400 @@ -36,7 +36,6 @@ int next_nal = -1; ///! legacy variable, 4 if stream is synced, 0 if not int videobuf_code_len=0; -int peek_nal_descriptor = -1; //ajs LookAhead for MPEG4 P,B,IDR frame detection #define MAX_SYNCLEN (10 * 1024 * 1024) // sync video stream, and returns next packet code @@ -49,7 +48,6 @@ goto eof_out; } next_nal = demux_getc(ds); - peek_nal_descriptor = demux_peekc(ds); //ajs LookAhead for MPEG4 P,B,IDR frame detection if (next_nal < 0) goto eof_out; videobuf_code_len = 4; @@ -94,7 +92,6 @@ // Save next packet code: next_nal = demux_getc(ds); - peek_nal_descriptor = demux_peekc(ds); //ajs LookAhead for MPEG4 P,B,IDR frame detection if (next_nal < 0) goto eof_out; videobuf_code_len=4; diff -u -r -x 'config*' -x '*.o' -x '*.a' ./libmpdemux/parse_es.h ../../mpl_new/libmpdemux/parse_es.h --- ./libmpdemux/parse_es.h 2011-03-28 16:39:47.000000000 -0400 +++ ../../mpl_new/libmpdemux/parse_es.h 2009-05-08 17:51:13.000000000 -0400 @@ -28,7 +28,6 @@ extern int videobuf_len; extern unsigned char videobuf_code[4]; extern int videobuf_code_len; -extern int peek_nal_descriptor; //ajs LookAhead for MPEG4 P,B,IDR frame detection // sync video stream, and returns next packet code int sync_video_packet(demux_stream_t *ds);