[FFmpeg-cvslog] avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.
Tim Walker
git at videolan.org
Sun Jan 5 22:20:04 CET 2014
ffmpeg | branch: master | Tim Walker <tdskywalker at gmail.com> | Wed Dec 11 02:03:29 2013 +0000| [5b4797a21db900b7d509660b7a4d49829089b004] | committer: Tim Walker
avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.
Includes a libavcodec utility function to update a frame's side data.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5b4797a21db900b7d509660b7a4d49829089b004
---
doc/APIchanges | 4 ++++
libavcodec/internal.h | 7 +++++++
libavcodec/utils.c | 20 ++++++++++++++++++++
libavutil/frame.h | 4 ++++
libavutil/version.h | 2 +-
5 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index 376a745..1152ecd 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,10 @@ libavutil: 2013-12-xx
API changes, most recent first:
+2013-12-xx - xxxxxxx - lavu 53.2.0 - frame.h
+ Add AV_FRAME_DATA_MATRIXENCODING value to the AVFrameSideDataType enum, which
+ identifies AVMatrixEncoding data.
+
2013-12-xx - xxxxxxx - lavu 53.1.0 - channel_layout.h
Add values for various Dolby flags to the AVMatrixEncoding enum.
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index c4f0981..9f7213c 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 1fa9cb8..d744bba 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
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 16e2177..b025165 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -46,6 +46,10 @@ enum AVFrameSideDataType {
* The data is the AVStereo3D struct defined in libavutil/stereo3d.h.
*/
AV_FRAME_DATA_STEREO3D,
+ /**
+ * The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.
+ */
+ AV_FRAME_DATA_MATRIXENCODING,
};
typedef struct AVFrameSideData {
diff --git a/libavutil/version.h b/libavutil/version.h
index 01c932c..e95d77c 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -54,7 +54,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 53
-#define LIBAVUTIL_VERSION_MINOR 1
+#define LIBAVUTIL_VERSION_MINOR 2
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
More information about the ffmpeg-cvslog
mailing list