aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-01-05 22:12:41 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-01-05 22:12:41 +0100
commit4cf4da9dc5814aebe8881d93b4a88f593b774448 (patch)
tree70a7c6514dd14c1a08e2d0f31d85279961e53504
parent751385fe3f6537b2f9d04d2055d23f49f5196efa (diff)
parent5b4797a21db900b7d509660b7a4d49829089b004 (diff)
downloadffmpeg-4cf4da9dc5814aebe8881d93b4a88f593b774448.tar.gz
Merge commit '5b4797a21db900b7d509660b7a4d49829089b004'
* commit '5b4797a21db900b7d509660b7a4d49829089b004': avframe: add AV_FRAME_DATA_MATRIXENCODING side data type. Conflicts: libavutil/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--doc/APIchanges4
-rw-r--r--libavcodec/internal.h7
-rw-r--r--libavcodec/utils.c20
-rw-r--r--libavutil/frame.h4
-rw-r--r--libavutil/version.h2
5 files changed, 36 insertions, 1 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index 7e7b15472b..d43f459a4f 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,10 @@ libavutil: 2012-10-22
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 35bfcd4755..8aa0ac101c 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"
@@ -238,4 +239,10 @@ const uint8_t *avpriv_find_start_code(const uint8_t *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 f6601332ce..2c27e19534 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -252,6 +252,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 b31cc3ec4c..1222d3c9e1 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -69,6 +69,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 e6a0f252a0..9e4f20281a 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -56,7 +56,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 52
-#define LIBAVUTIL_VERSION_MINOR 61
+#define LIBAVUTIL_VERSION_MINOR 62
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \