summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/APIchanges3
-rw-r--r--libavutil/frame.c9
-rw-r--r--libavutil/frame.h11
-rw-r--r--libavutil/version.h4
4 files changed, 25 insertions, 2 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index 9b9f46ef49..e7a0b14038 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,9 @@ libavutil: 2015-08-28
API changes, most recent first:
+2017-02-11 - xxxxxxx - lavu 55.32.0 - frame.h
+ Add AVFrame.opaque_ref.
+
2017-02-xx - xxxxxxx - lavu 55.31.1 - frame.h
Allow passing the value of 0 (meaning "automatic") as the required alignment
to av_frame_get_buffer().
diff --git a/libavutil/frame.c b/libavutil/frame.c
index aa5820c0e9..9cd5f9ab37 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -317,6 +317,8 @@ void av_frame_unref(AVFrame *frame)
av_buffer_unref(&frame->hw_frames_ctx);
+ av_buffer_unref(&frame->opaque_ref);
+
get_frame_defaults(frame);
}
@@ -440,6 +442,13 @@ FF_ENABLE_DEPRECATION_WARNINGS
av_dict_copy(&sd_dst->metadata, sd_src->metadata, 0);
}
+ av_buffer_unref(&dst->opaque_ref);
+ if (src->opaque_ref) {
+ dst->opaque_ref = av_buffer_ref(src->opaque_ref);
+ if (!dst->opaque_ref)
+ return AVERROR(ENOMEM);
+ }
+
return 0;
}
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 4f63fb0249..f9ffb5bbbf 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -395,6 +395,17 @@ typedef struct AVFrame {
/**
* @}
*/
+
+ /**
+ * AVBufferRef for free use by the API user. Libav will never check the
+ * contents of the buffer ref. Libav calls av_buffer_unref() on it when
+ * the frame is unreferenced. av_frame_copy_props() calls create a new
+ * reference with av_buffer_ref() for the target frame's opaque_ref field.
+ *
+ * This is unrelated to the opaque field, although it serves a similar
+ * purpose.
+ */
+ AVBufferRef *opaque_ref;
} AVFrame;
/**
diff --git a/libavutil/version.h b/libavutil/version.h
index 0768f9fe99..5dbc57cc1b 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -54,8 +54,8 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 55
-#define LIBAVUTIL_VERSION_MINOR 31
-#define LIBAVUTIL_VERSION_MICRO 1
+#define LIBAVUTIL_VERSION_MINOR 32
+#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \