On 2013-03-04 11:35:16 +0100, Anton Khirnov wrote:
> Take a Picture instead of AVFrame.
>
> It is needed because some fields from AVFrame printed by this function
> will be moved to Picture.
> ---
> libavcodec/h261dec.c | 2 +-
> libavcodec/h263dec.c | 3 ++-
> libavcodec/mpeg12.c | 4 ++--
> libavcodec/mpegvideo.c | 6 ++++--
> libavcodec/mpegvideo.h | 2 +-
> libavcodec/rv10.c | 3 ++-
> libavcodec/rv34.c | 4 ++--
> libavcodec/vc1dec.c | 3 ++-
> 8 files changed, 16 insertions(+), 11 deletions(-)
>
> diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c
> index 35d5002..904814b 100644
> --- a/libavcodec/h261dec.c
> +++ b/libavcodec/h261dec.c
> @@ -625,7 +625,7 @@ assert(s->current_picture.f.pict_type ==
> s->current_picture_ptr->f.pict_type);
> assert(s->current_picture.f.pict_type == s->pict_type);
>
> *pict = s->current_picture_ptr->f;
> - ff_print_debug_info(s, pict);
> + ff_print_debug_info(s, s->current_picture_ptr);
>
> *got_frame = 1;
>
> diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
> index 663fe90..7ab9ed2 100644
> --- a/libavcodec/h263dec.c
> +++ b/libavcodec/h263dec.c
> @@ -722,13 +722,14 @@ intrax8_decoded:
> assert(s->current_picture.f.pict_type == s->pict_type);
> if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) {
> *pict = s->current_picture_ptr->f;
> + ff_print_debug_info(s, s->current_picture_ptr);
> } else if (s->last_picture_ptr != NULL) {
> *pict = s->last_picture_ptr->f;
> + ff_print_debug_info(s, s->last_picture_ptr);
> }
>
> if(s->last_picture_ptr || s->low_delay){
> *got_frame = 1;
> - ff_print_debug_info(s, pict);
> }
>
> #ifdef PRINT_FRAME_TIME
> diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
> index 4df51a2..bc71c91 100644
> --- a/libavcodec/mpeg12.c
> +++ b/libavcodec/mpeg12.c
> @@ -1921,7 +1921,7 @@ static int slice_end(AVCodecContext *avctx, AVFrame
> *pict)
>
> if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) {
> *pict = s->current_picture_ptr->f;
> - ff_print_debug_info(s, pict);
> + ff_print_debug_info(s, s->current_picture_ptr);
> } else {
> if (avctx->active_thread_type & FF_THREAD_FRAME)
> s->picture_number++;
> @@ -1929,7 +1929,7 @@ static int slice_end(AVCodecContext *avctx, AVFrame
> *pict)
> /* XXX: use another variable than picture_number */
> if (s->last_picture_ptr != NULL) {
> *pict = s->last_picture_ptr->f;
> - ff_print_debug_info(s, pict);
> + ff_print_debug_info(s, s->last_picture_ptr);
> }
> }
>
> diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
> index 9ddfa0d..5aa45d7 100644
> --- a/libavcodec/mpegvideo.c
> +++ b/libavcodec/mpegvideo.c
> @@ -1803,10 +1803,12 @@ static void draw_arrow(uint8_t *buf, int sx, int sy,
> int ex,
> /**
> * Print debugging info for the given picture.
> */
> -void ff_print_debug_info(MpegEncContext *s, AVFrame *pict)
> +void ff_print_debug_info(MpegEncContext *s, Picture *p)
> {
> - if (s->avctx->hwaccel || !pict || !pict->mb_type)
> + AVFrame *pict;
> + if (s->avctx->hwaccel || !p || !pict->mb_type)
!pict->mb_type doesn't make any sense at this point, probably ok after
squashing, please check
> return;
> + pict = &p->f;
>
> if (s->avctx->debug & (FF_DEBUG_SKIP | FF_DEBUG_QP | FF_DEBUG_MB_TYPE)) {
> int x,y;
> diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
> index fff1e13..e5cc201 100644
> --- a/libavcodec/mpegvideo.h
> +++ b/libavcodec/mpegvideo.h
> @@ -772,7 +772,7 @@ void ff_draw_horiz_band(AVCodecContext *avctx, DSPContext
> *dsp, Picture *cur,
> int v_edge_pos, int h_edge_pos);
> void ff_mpeg_draw_horiz_band(MpegEncContext *s, int y, int h);
> void ff_mpeg_flush(AVCodecContext *avctx);
> -void ff_print_debug_info(MpegEncContext *s, AVFrame *pict);
> +void ff_print_debug_info(MpegEncContext *s, Picture *p);
> void ff_write_quant_matrix(PutBitContext *pb, uint16_t *matrix);
> void ff_release_unused_pictures(MpegEncContext *s, int remove_current);
> int ff_find_unused_picture(MpegEncContext *s, int shared);
> diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c
> index 29e41dc..e872d24 100644
> --- a/libavcodec/rv10.c
> +++ b/libavcodec/rv10.c
> @@ -701,13 +701,14 @@ static int rv10_decode_frame(AVCodecContext *avctx,
>
> if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) {
> *pict = s->current_picture_ptr->f;
> + ff_print_debug_info(s, s->current_picture_ptr);
> } else if (s->last_picture_ptr != NULL) {
> *pict = s->last_picture_ptr->f;
> + ff_print_debug_info(s, s->last_picture_ptr);
> }
>
> if(s->last_picture_ptr || s->low_delay){
> *got_frame = 1;
> - ff_print_debug_info(s, pict);
> }
> s->current_picture_ptr= NULL; // so we can detect if frame_end was
> not called (find some nicer solution...)
> }
> diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
> index 34eeb50..3c3e3e2 100644
> --- a/libavcodec/rv34.c
> +++ b/libavcodec/rv34.c
> @@ -1573,13 +1573,13 @@ static int finish_frame(AVCodecContext *avctx,
> AVFrame *pict)
>
> if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) {
> *pict = s->current_picture_ptr->f;
> + ff_print_debug_info(s, s->current_picture_ptr);
> got_picture = 1;
> } else if (s->last_picture_ptr != NULL) {
> *pict = s->last_picture_ptr->f;
> + ff_print_debug_info(s, s->last_picture_ptr);
> got_picture = 1;
> }
> - if (got_picture)
> - ff_print_debug_info(s, pict);
>
> return got_picture;
> }
> diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
> index 403bac8..7f776a7 100644
> --- a/libavcodec/vc1dec.c
> +++ b/libavcodec/vc1dec.c
> @@ -5654,12 +5654,13 @@ image:
> } else {
> if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) {
> *pict = s->current_picture_ptr->f;
> + ff_print_debug_info(s, s->current_picture_ptr);
> } else if (s->last_picture_ptr != NULL) {
> *pict = s->last_picture_ptr->f;
> + ff_print_debug_info(s, s->last_picture_ptr);
> }
> if (s->last_picture_ptr || s->low_delay) {
> *got_frame = 1;
> - ff_print_debug_info(s, pict);
> }
> }
>
ok
Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel