From 5430b070a85126da5905d4c0d3d1b1ef39c7042d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 10 Mar 2006 20:40:52 +0000 Subject: [PATCH] cleanup picture / debug output code Originally committed as revision 5140 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h263dec.c | 17 ++++++++--------- libavcodec/rv10.c | 15 ++++++++------- libavcodec/vc9.c | 19 +++++++++---------- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 91caa48..30303f8 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -766,22 +766,21 @@ retry: assert(s->current_picture.pict_type == s->current_picture_ptr->pict_type); assert(s->current_picture.pict_type == s->pict_type); - if(s->pict_type==B_TYPE || s->low_delay){ - *pict= *(AVFrame*)&s->current_picture; + if (s->pict_type == B_TYPE || s->low_delay) { + *pict= *(AVFrame*)s->current_picture_ptr; + } else if (s->last_picture_ptr != NULL) { + *pict= *(AVFrame*)s->last_picture_ptr; + } + + if(s->last_picture_ptr || s->low_delay){ + *data_size = sizeof(AVFrame); ff_print_debug_info(s, pict); - } else { - *pict= *(AVFrame*)&s->last_picture; - if(pict) - ff_print_debug_info(s, pict); } /* Return the Picture timestamp as the frame number */ /* we substract 1 because it is added on utils.c */ avctx->frame_number = s->picture_number - 1; - /* don't output the last pic after seeking */ - if(s->last_picture_ptr || s->low_delay) - *data_size = sizeof(AVFrame); #ifdef PRINT_FRAME_TIME av_log(avctx, AV_LOG_DEBUG, "%Ld\n", rdtsc()-time); #endif diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index 0b90cc2..d48e0df 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -741,15 +741,16 @@ static int rv10_decode_frame(AVCodecContext *avctx, ff_er_frame_end(s); MPV_frame_end(s); - if(s->pict_type==B_TYPE || s->low_delay){ - *pict= *(AVFrame*)&s->current_picture; - ff_print_debug_info(s, pict); - } else { - *pict= *(AVFrame*)&s->last_picture; - ff_print_debug_info(s, pict); + if (s->pict_type == B_TYPE || s->low_delay) { + *pict= *(AVFrame*)s->current_picture_ptr; + } else if (s->last_picture_ptr != NULL) { + *pict= *(AVFrame*)s->last_picture_ptr; } - if(s->last_picture_ptr || s->low_delay) + + if(s->last_picture_ptr || s->low_delay){ *data_size = sizeof(AVFrame); + ff_print_debug_info(s, pict); + } s->current_picture_ptr= NULL; //so we can detect if frame_end wasnt called (find some nicer solution...) } diff --git a/libavcodec/vc9.c b/libavcodec/vc9.c index 465edda..926ef88 100644 --- a/libavcodec/vc9.c +++ b/libavcodec/vc9.c @@ -2606,23 +2606,22 @@ static int vc9_decode_frame(AVCodecContext *avctx, assert(s->current_picture.pict_type == s->current_picture_ptr->pict_type); assert(s->current_picture.pict_type == s->pict_type); - if(s->pict_type==B_TYPE || s->low_delay){ - *pict= *(AVFrame*)&s->current_picture; + + if (s->pict_type == B_TYPE || s->low_delay) { + *pict= *(AVFrame*)s->current_picture_ptr; + } else if (s->last_picture_ptr != NULL) { + *pict= *(AVFrame*)s->last_picture_ptr; + } + + if(s->last_picture_ptr || s->low_delay){ + *data_size = sizeof(AVFrame); ff_print_debug_info(s, pict); - } else { - *pict= *(AVFrame*)&s->last_picture; - if(pict) - ff_print_debug_info(s, pict); } /* Return the Picture timestamp as the frame number */ /* we substract 1 because it is added on utils.c */ avctx->frame_number = s->picture_number - 1; - /* dont output the last pic after seeking */ - if(s->last_picture_ptr || s->low_delay) - *data_size = sizeof(AVFrame); - av_log(avctx, AV_LOG_DEBUG, "Consumed %i/%i bits\n", get_bits_count(&s->gb), buf_size*8); -- 2.7.4