summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorTim Walker <tdskywalker@gmail.com>2013-12-11 02:03:29 +0000
committerTim Walker <tdskywalker@gmail.com>2014-01-05 16:41:56 +0100
commit5b4797a21db900b7d509660b7a4d49829089b004 (patch)
treeeefc1d4f9112e3b44bb14023fc3f469ce6b7f2f0 /libavcodec
parent5c437fb672b6f6d1f423f88ef84ad5a60cb63813 (diff)
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.h7
-rw-r--r--libavcodec/utils.c20
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