aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2003-08-05 10:19:43 +0000
committerMichael Niedermayer <michaelni@gmx.at>2003-08-05 10:19:43 +0000
commit59c673d5180cd85f367df0badf435f09513a5947 (patch)
tree3b9e8bf6901570b3a18d6f84a4f41496279e3c7f
parent2864dfd5794a5a9bff612e730179a9026f042a06 (diff)
downloadffmpeg-59c673d5180cd85f367df0badf435f09513a5947.tar.gz
cleanup / fixes
Originally committed as revision 2103 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/h263.c7
-rw-r--r--libavcodec/mpegvideo.c2
-rw-r--r--libavcodec/utils.c1
3 files changed, 6 insertions, 4 deletions
diff --git a/libavcodec/h263.c b/libavcodec/h263.c
index 3f48418131..ec30214031 100644
--- a/libavcodec/h263.c
+++ b/libavcodec/h263.c
@@ -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);
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 1b01aa32d5..4ccc7d571a 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -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 */
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 47831f2f35..33ff0f4153 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -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];