summaryrefslogtreecommitdiff
path: root/media/ffvpx/libavcodec/vp8.h
diff options
context:
space:
mode:
authorMoonchild <mcwerewolf@gmail.com>2018-10-01 14:34:26 +0200
committerGitHub <noreply@github.com>2018-10-01 14:34:26 +0200
commit79b00fc33b5cb6d56d29b50efac6d62ce3a89018 (patch)
tree77d8179bb3d9d76d9ec4fcfe396a35afcc8f73cd /media/ffvpx/libavcodec/vp8.h
parentab881a3bf513e591b6cc2966560cdab2b63a0f2a (diff)
parent7d1ee0e5e4958175ccde5d153b025f97a17caeb2 (diff)
downloaduxp-79b00fc33b5cb6d56d29b50efac6d62ce3a89018.tar.gz
Merge pull request #801 from trav90/update-from-upstream
Update ffvpx code to 4.0.2
Diffstat (limited to 'media/ffvpx/libavcodec/vp8.h')
-rw-r--r--media/ffvpx/libavcodec/vp8.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/media/ffvpx/libavcodec/vp8.h b/media/ffvpx/libavcodec/vp8.h
index 8263997e3f..70d21e3c60 100644
--- a/media/ffvpx/libavcodec/vp8.h
+++ b/media/ffvpx/libavcodec/vp8.h
@@ -138,12 +138,18 @@ typedef struct VP8ThreadData {
typedef struct VP8Frame {
ThreadFrame tf;
AVBufferRef *seg_map;
+
+ AVBufferRef *hwaccel_priv_buf;
+ void *hwaccel_picture_private;
} VP8Frame;
#define MAX_THREADS 8
typedef struct VP8Context {
VP8ThreadData *thread_data;
AVCodecContext *avctx;
+ enum AVPixelFormat pix_fmt;
+ int actually_webp;
+
VP8Frame *framep[4];
VP8Frame *next_framep[4];
VP8Frame *curframe;
@@ -172,6 +178,7 @@ typedef struct VP8Context {
uint8_t enabled;
uint8_t absolute_vals;
uint8_t update_map;
+ uint8_t update_feature_data;
int8_t base_quant[4];
int8_t filter_level[4]; ///< base loop filter level
} segmentation;
@@ -199,8 +206,19 @@ typedef struct VP8Context {
int16_t chroma_qmul[2];
} qmat[4];
+ // Raw quantisation values, which may be needed by hwaccel decode.
+ struct {
+ int yac_qi;
+ int ydc_delta;
+ int y2dc_delta;
+ int y2ac_delta;
+ int uvdc_delta;
+ int uvac_delta;
+ } quant;
+
struct {
uint8_t enabled; ///< whether each mb can have a different strength based on mode/ref
+ uint8_t update;
/**
* filter strength adjustment for the following macroblock modes:
@@ -228,6 +246,20 @@ typedef struct VP8Context {
VP56RangeCoder c; ///< header context, includes mb modes and motion vectors
+ /* This contains the entropy coder state at the end of the header
+ * block, in the form specified by the standard. For use by
+ * hwaccels, so that a hardware decoder has the information to
+ * start decoding at the macroblock layer.
+ */
+ struct {
+ const uint8_t *input;
+ uint32_t range;
+ uint32_t value;
+ int bit_count;
+ } coder_state_at_header_end;
+
+ int header_partition_size;
+
/**
* These are all of the updatable probabilities for binary decisions.
* They are only implicitly reset on keyframes, making it quite likely
@@ -265,6 +297,7 @@ typedef struct VP8Context {
*/
int num_coeff_partitions;
VP56RangeCoder coeff_partition[8];
+ int coeff_partition_size[8];
VideoDSPContext vdsp;
VP8DSPContext vp8dsp;
H264PredContext hpc;