cleanup / fixes
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 5 Aug 2003 10:19:43 +0000 (10:19 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 5 Aug 2003 10:19:43 +0000 (10:19 +0000)
Originally committed as revision 2103 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h263.c
libavcodec/mpegvideo.c
libavcodec/utils.c

index 3f4841813109ae8ddfc86fa5a8205bbd4981929b..ec30214031224277826efe8dc1aa206bbb440026 100644 (file)
@@ -4832,13 +4832,13 @@ static int decode_vop_header(MpegEncContext *s, GetBitContext *gb){
 
     check_marker(gb, "before time_increment");
     
-    if(s->picture_number==0 && (show_bits(gb, s->time_increment_bits+1)&1)==0){
+    if(s->time_increment_bits==0){
         printf("hmm, seems the headers arnt complete, trying to guess time_increment_bits\n");
-        
 
         for(s->time_increment_bits=1 ;s->time_increment_bits<16; s->time_increment_bits++){
             if(show_bits(gb, s->time_increment_bits+1)&1) break;
         }
+
         printf("my guess is %d bits ;)\n",s->time_increment_bits);
     }
     
@@ -5070,7 +5070,8 @@ int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb)
 
         switch(startcode){
         case 0x120:
-            decode_vol_header(s, gb);
+            if(decode_vol_header(s, gb) < 0) 
+                return -1;
             break;
         case USER_DATA_STARTCODE:
             decode_user_data(s, gb);
index 1b01aa32d5547a19c001831dceca6dc5f98a3c2c..4ccc7d571a7c5bb5fa1aad552c44d7722c9914fa 100644 (file)
@@ -951,7 +951,7 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
     assert(s->last_picture_ptr==NULL || s->out_format != FMT_H264 || s->codec_id == CODEC_ID_SVQ3);
 
     /* mark&release old frames */
-    if (s->pict_type != B_TYPE && s->last_picture_ptr) {
+    if (s->pict_type != B_TYPE && s->last_picture_ptr && s->last_picture_ptr->data[0]) {
         avctx->release_buffer(avctx, (AVFrame*)s->last_picture_ptr);
 
         /* release forgotten pictures */
index 47831f2f356750d4e155c15d6136ddb35f5c347e..33ff0f41537a76f1dc32d61cedbd6bb435d54dd7 100644 (file)
@@ -220,6 +220,7 @@ void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic){
     InternalBuffer *buf, *last, temp;
 
     assert(pic->type==FF_BUFFER_TYPE_INTERNAL);
+    assert(s->internal_buffer_count);
 
     for(i=0; i<s->internal_buffer_count; i++){ //just 3-5 checks so is not worth to optimize
         buf= &((InternalBuffer*)s->internal_buffer)[i];