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

Reply via email to