On 12/06/2013 05:23 PM, Tim Walker wrote:
> ---
>  libavcodec/internal.h |  5 +++++
>  libavcodec/utils.c    | 16 ++++++++++++++++
>  2 files changed, 21 insertions(+)
> 
> diff --git a/libavcodec/internal.h b/libavcodec/internal.h
> index c1108ff..b9d626d 100644
> --- a/libavcodec/internal.h
> +++ b/libavcodec/internal.h
> @@ -179,4 +179,9 @@ const uint8_t *avpriv_find_start_code(const uint8_t 
> *restrict p,
>   */
>  int ff_set_dimensions(AVCodecContext *s, int width, int height);
>  
> +/**
> + * Add or update AV_FRAME_DATA_MATRIXENCODING side data.
> + */
> +void ff_side_data_update_matrix_encoding(AVFrame *frame, int 
> matrix_encoding);
> +
>  #endif /* AVCODEC_INTERNAL_H */
> diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> index d21ca0e..7de3b91 100644
> --- a/libavcodec/utils.c
> +++ b/libavcodec/utils.c
> @@ -151,6 +151,22 @@ int ff_set_dimensions(AVCodecContext *s, int width, int 
> height)
>      return ret;
>  }
>  
> +void ff_side_data_update_matrix_encoding(AVFrame *frame, int matrix_encoding)
> +{
> +    AVFrameSideData *side_data;
> +    enum AVMatrixEncoding *data;
> +
> +    side_data = av_frame_get_side_data(frame, AV_FRAME_DATA_MATRIXENCODING);
> +    if (!side_data)
> +        side_data = av_frame_new_side_data(frame, 
> AV_FRAME_DATA_MATRIXENCODING,
> +                                           sizeof(enum AVMatrixEncoding));
> +
> +    if (side_data) {
> +        data  = (enum AVMatrixEncoding*)side_data->data;
> +        *data = matrix_encoding;
> +    }
> +}
> +
>  #if HAVE_NEON || ARCH_PPC || HAVE_MMX
>  #   define STRIDE_ALIGN 16
>  #else

This should return an error code, and if av_frame_new_side_data() fails,
return AVERROR(ENOMEM).

Also, squash with patch 02.

Thanks,
Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to