aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2006-03-10 20:40:52 +0000
committerMichael Niedermayer <michaelni@gmx.at>2006-03-10 20:40:52 +0000
commit5430b070a85126da5905d4c0d3d1b1ef39c7042d (patch)
tree61e00bafb98404083cf84ac97118b76cf6a4fa09
parent003ebe100b9d9cd4ae32b16b38865714bfb6df44 (diff)
downloadffmpeg-5430b070a85126da5905d4c0d3d1b1ef39c7042d.tar.gz
cleanup picture / debug output code
Originally committed as revision 5140 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/h263dec.c17
-rw-r--r--libavcodec/rv10.c15
-rw-r--r--libavcodec/vc9.c19
3 files changed, 25 insertions, 26 deletions
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index 91caa48e55..30303f8edf 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 0b90cc2c18..d48e0df2f0 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 465edda103..926ef88eb1 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);