summaryrefslogtreecommitdiffstats
path: root/libvpx/vp9/decoder/vp9_decoder.h
diff options
context:
space:
mode:
authorhkuang <hkuang@google.com>2014-04-09 14:20:00 -0700
committerhkuang <hkuang@google.com>2014-04-09 14:20:00 -0700
commit6ac915abcdb404a00d927fe6308a47fcf09d9519 (patch)
treee1b38724c6741b657c04a788d42226d5f69d5c3d /libvpx/vp9/decoder/vp9_decoder.h
parentcf2f478820e07635bb013420f0498ab685190718 (diff)
downloadandroid_external_libvpx-6ac915abcdb404a00d927fe6308a47fcf09d9519.tar.gz
android_external_libvpx-6ac915abcdb404a00d927fe6308a47fcf09d9519.tar.bz2
android_external_libvpx-6ac915abcdb404a00d927fe6308a47fcf09d9519.zip
Roll latest libvpx to fix hang when doing adaptive playback.
VP9 decoder will hang when switching from frames with 2 tiles to 4 tiles on a 4 core device. libvpx hash:4fffefe189a9123d4b04482c26a1be5eb632b397 Bug: 13931133 Change-Id: I24a51fd572ca7e872bc440491e2c645a20e9a736
Diffstat (limited to 'libvpx/vp9/decoder/vp9_decoder.h')
-rw-r--r--libvpx/vp9/decoder/vp9_decoder.h34
1 files changed, 9 insertions, 25 deletions
diff --git a/libvpx/vp9/decoder/vp9_decoder.h b/libvpx/vp9/decoder/vp9_decoder.h
index 4cbff45..c9dc251 100644
--- a/libvpx/vp9/decoder/vp9_decoder.h
+++ b/libvpx/vp9/decoder/vp9_decoder.h
@@ -31,30 +31,17 @@ typedef struct {
int width;
int height;
int version;
- int postprocess;
int max_threads;
int inv_tile_order;
- int input_partition;
} VP9D_CONFIG;
-typedef enum {
- VP9_LAST_FLAG = 1,
- VP9_GOLD_FLAG = 2,
- VP9_ALT_FLAG = 4
-} VP9_REFFRAME;
-
-typedef struct VP9Decompressor {
+typedef struct VP9Decoder {
DECLARE_ALIGNED(16, MACROBLOCKD, mb);
DECLARE_ALIGNED(16, VP9_COMMON, common);
- DECLARE_ALIGNED(16, int16_t, dqcoeff[MAX_MB_PLANE][64 * 64]);
-
VP9D_CONFIG oxcf;
- const uint8_t *source;
- size_t source_sz;
-
int64_t last_time_stamp;
int ready_for_new_data;
@@ -72,37 +59,34 @@ typedef struct VP9Decompressor {
int num_tile_workers;
VP9LfSync lf_row_sync;
-
- ENTROPY_CONTEXT *above_context[MAX_MB_PLANE];
- PARTITION_CONTEXT *above_seg_context;
-} VP9D_COMP;
+} VP9Decoder;
void vp9_initialize_dec();
-int vp9_receive_compressed_data(struct VP9Decompressor *pbi,
+int vp9_receive_compressed_data(struct VP9Decoder *pbi,
size_t size, const uint8_t **dest,
int64_t time_stamp);
-int vp9_get_raw_frame(struct VP9Decompressor *pbi,
+int vp9_get_raw_frame(struct VP9Decoder *pbi,
YV12_BUFFER_CONFIG *sd,
int64_t *time_stamp, int64_t *time_end_stamp,
vp9_ppflags_t *flags);
-vpx_codec_err_t vp9_copy_reference_dec(struct VP9Decompressor *pbi,
+vpx_codec_err_t vp9_copy_reference_dec(struct VP9Decoder *pbi,
VP9_REFFRAME ref_frame_flag,
YV12_BUFFER_CONFIG *sd);
-vpx_codec_err_t vp9_set_reference_dec(struct VP9Decompressor *pbi,
+vpx_codec_err_t vp9_set_reference_dec(VP9_COMMON *cm,
VP9_REFFRAME ref_frame_flag,
YV12_BUFFER_CONFIG *sd);
-int vp9_get_reference_dec(struct VP9Decompressor *pbi,
+int vp9_get_reference_dec(struct VP9Decoder *pbi,
int index, YV12_BUFFER_CONFIG **fb);
-struct VP9Decompressor *vp9_create_decompressor(VP9D_CONFIG *oxcf);
+struct VP9Decoder *vp9_decoder_create(const VP9D_CONFIG *oxcf);
-void vp9_remove_decompressor(struct VP9Decompressor *pbi);
+void vp9_decoder_remove(struct VP9Decoder *pbi);
#ifdef __cplusplus
} // extern "C"