aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/vp9.h
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2015-10-14 10:03:20 +0200
committerHendrik Leppkes <h.leppkes@gmail.com>2015-10-15 13:02:23 +0200
commit6e719dc6bb64d37c0b47f8c3387aa572e0a4780a (patch)
tree7c19c0231f2c10c5b6d706a69f02423af05396b4 /libavcodec/vp9.h
parentb95f241b6e6360eef8073b4c7b55bd0e3eb73aca (diff)
downloadffmpeg-6e719dc6bb64d37c0b47f8c3387aa572e0a4780a.tar.gz
vp9: expose reference frames in VP9SharedContext
Diffstat (limited to 'libavcodec/vp9.h')
-rw-r--r--libavcodec/vp9.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/libavcodec/vp9.h b/libavcodec/vp9.h
index cac15f4aab..27cdfc6968 100644
--- a/libavcodec/vp9.h
+++ b/libavcodec/vp9.h
@@ -26,6 +26,9 @@
#include <stdint.h>
+#include "thread.h"
+#include "vp56.h"
+
enum BlockLevel {
BL_64X64,
BL_32X32,
@@ -115,6 +118,19 @@ enum CompPredMode {
PRED_SWITCHABLE,
};
+struct VP9mvrefPair {
+ VP56mv mv[2];
+ int8_t ref[2];
+};
+
+typedef struct VP9Frame {
+ ThreadFrame tf;
+ AVBufferRef *extradata;
+ uint8_t *segmentation_map;
+ struct VP9mvrefPair *mv;
+ int uses_2pass;
+} VP9Frame;
+
typedef struct VP9BitstreamHeader {
// bitstream header
uint8_t profile;
@@ -181,6 +197,12 @@ typedef struct VP9BitstreamHeader {
typedef struct VP9SharedContext {
VP9BitstreamHeader h;
+
+ ThreadFrame refs[8];
+#define CUR_FRAME 0
+#define REF_FRAME_MVPAIR 1
+#define REF_FRAME_SEGMAP 2
+ VP9Frame frames[3];
} VP9SharedContext;
#endif /* AVCODEC_VP9_H */