Index: source/libvpx/vp9/common/vp9_frame_buffers.h |
=================================================================== |
--- source/libvpx/vp9/common/vp9_frame_buffers.h (revision 0) |
+++ source/libvpx/vp9/common/vp9_frame_buffers.h (revision 0) |
@@ -0,0 +1,53 @@ |
+/* |
+ * Copyright (c) 2014 The WebM project authors. All Rights Reserved. |
+ * |
+ * Use of this source code is governed by a BSD-style license |
+ * that can be found in the LICENSE file in the root of the source |
+ * tree. An additional intellectual property rights grant can be found |
+ * in the file PATENTS. All contributing project authors may |
+ * be found in the AUTHORS file in the root of the source tree. |
+ */ |
+ |
+#ifndef VP9_COMMON_VP9_FRAME_BUFFERS_H_ |
+#define VP9_COMMON_VP9_FRAME_BUFFERS_H_ |
+ |
+#include "vpx/vpx_frame_buffer.h" |
+#include "vpx/vpx_integer.h" |
+ |
+#ifdef __cplusplus |
+extern "C" { |
+#endif |
+ |
+typedef struct InternalFrameBuffer { |
+ uint8_t *data; |
+ size_t size; |
+ int in_use; |
+} InternalFrameBuffer; |
+ |
+typedef struct InternalFrameBufferList { |
+ int num_internal_frame_buffers; |
+ InternalFrameBuffer *int_fb; |
+} InternalFrameBufferList; |
+ |
+// Initializes |list|. Returns 0 on success. |
+int vp9_alloc_internal_frame_buffers(InternalFrameBufferList *list); |
+ |
+// Free any data allocated to the frame buffers. |
+void vp9_free_internal_frame_buffers(InternalFrameBufferList *list); |
+ |
+// Callback used by libvpx to request an external frame buffer. |cb_priv| |
+// Callback private data, which points to an InternalFrameBufferList. |
+// |min_size| is the minimum size in bytes needed to decode the next frame. |
+// |fb| pointer to the frame buffer. |
+int vp9_get_frame_buffer(void *cb_priv, size_t min_size, |
+ vpx_codec_frame_buffer_t *fb); |
+ |
+// Callback used by libvpx when there are no references to the frame buffer. |
+// |cb_priv| is not used. |fb| pointer to the frame buffer. |
+int vp9_release_frame_buffer(void *cb_priv, vpx_codec_frame_buffer_t *fb); |
+ |
+#ifdef __cplusplus |
+} // extern "C" |
+#endif |
+ |
+#endif // VP9_COMMON_VP9_FRAME_BUFFERS_H_ |