diff options
author | Tim Walker <tdskywalker@gmail.com> | 2013-12-11 02:03:29 +0000 |
---|---|---|
committer | Tim Walker <tdskywalker@gmail.com> | 2014-01-05 16:41:56 +0100 |
commit | 5b4797a21db900b7d509660b7a4d49829089b004 (patch) | |
tree | eefc1d4f9112e3b44bb14023fc3f469ce6b7f2f0 /libavcodec | |
parent | 5c437fb672b6f6d1f423f88ef84ad5a60cb63813 (diff) | |
download | ffmpeg-5b4797a21db900b7d509660b7a4d49829089b004.tar.gz |
avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.
Includes a libavcodec utility function to update a frame's side data.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/internal.h | 7 | ||||
-rw-r--r-- | libavcodec/utils.c | 20 |
2 files changed, 27 insertions, 0 deletions
diff --git a/libavcodec/internal.h b/libavcodec/internal.h index c4f0981ba8..9f7213c17d 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -27,6 +27,7 @@ #include <stdint.h> #include "libavutil/buffer.h" +#include "libavutil/channel_layout.h" #include "libavutil/mathematics.h" #include "libavutil/pixfmt.h" #include "avcodec.h" @@ -179,4 +180,10 @@ 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. + */ +int ff_side_data_update_matrix_encoding(AVFrame *frame, + enum AVMatrixEncoding matrix_encoding); + #endif /* AVCODEC_INTERNAL_H */ diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 1fa9cb88d2..d744bbacd2 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -151,6 +151,26 @@ int ff_set_dimensions(AVCodecContext *s, int width, int height) return ret; } +int ff_side_data_update_matrix_encoding(AVFrame *frame, + enum AVMatrixEncoding 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) + return AVERROR(ENOMEM); + + data = (enum AVMatrixEncoding*)side_data->data; + *data = matrix_encoding; + + return 0; +} + #if HAVE_NEON || ARCH_PPC || HAVE_MMX # define STRIDE_ALIGN 16 #else |