aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/internal.h
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2011-11-15 15:34:50 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2011-11-19 10:01:05 -0500
commitf3a29b750a5979ae6847879fba758faf1fae88d0 (patch)
tree0a5bf0e6822f0adf284a76c5d28ce55e3ad21d24 /libavcodec/internal.h
parent513b6919555b9e2b0c1f86fd5f02caaa14bcbe69 (diff)
downloadffmpeg-f3a29b750a5979ae6847879fba758faf1fae88d0.tar.gz
avcodec: move some AVCodecContext fields to an internal struct.
A new field, AVCodecContext.internal is used to hold a new struct AVCodecInternal, which has private fields that are not codec-specific and are used by general libavcodec functions. Moved internal_buffer, internal_buffer_count, and is_copy.
Diffstat (limited to 'libavcodec/internal.h')
-rw-r--r--libavcodec/internal.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 54d57d2bec..18e851c48e 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -25,8 +25,42 @@
#define AVCODEC_INTERNAL_H
#include <stdint.h>
+
+#include "libavutil/pixfmt.h"
#include "avcodec.h"
+typedef struct InternalBuffer {
+ int last_pic_num;
+ uint8_t *base[4];
+ uint8_t *data[4];
+ int linesize[4];
+ int width;
+ int height;
+ enum PixelFormat pix_fmt;
+} InternalBuffer;
+
+typedef struct AVCodecInternal {
+ /**
+ * internal buffer count
+ * used by default get/release/reget_buffer().
+ */
+ int buffer_count;
+
+ /**
+ * internal buffers
+ * used by default get/release/reget_buffer().
+ */
+ InternalBuffer *buffer;
+
+ /**
+ * Whether the parent AVCodecContext is a copy of the context which had
+ * init() called on it.
+ * This is used by multithreading - shared tables and picture pointers
+ * should be freed from the original context only.
+ */
+ int is_copy;
+} AVCodecInternal;
+
struct AVCodecDefault {
const uint8_t *key;
const uint8_t *value;