#include <i915_drm.h>
#include <intel_bufmgr.h>
#include "i965_decoder.h"
+#include "vp9_probs.h"
struct hw_context;
-struct gen9_hcpd_context
-{
+typedef struct vp9_frame_status {
+ uint16_t frame_width;
+ uint16_t frame_height;
+ uint8_t frame_type;
+ uint8_t show_frame;
+ uint8_t refresh_frame_context;
+ uint8_t frame_context_idx;
+ uint8_t intra_only;
+ uint8_t prob_buffer_saved_flag;
+ uint8_t prob_buffer_restored_flag;
+} vp9_last_frame_status;
+
+typedef struct vp9_mv_temporal_buffer {
+ dri_bo *bo;
+ uint16_t frame_width;
+ uint16_t frame_height;
+} VP9_MV_BUFFER;
+
+struct gen9_hcpd_context {
struct hw_context base;
GenFrameStoreContext fs_ctx;
GenBuffer sao_line_buffer;
GenBuffer sao_tile_line_buffer;
GenBuffer sao_tile_column_buffer;
+ GenBuffer hvd_line_rowstore_buffer;
+ GenBuffer hvd_tile_rowstore_buffer;
+ GenBuffer vp9_probability_buffer;
+ GenBuffer vp9_segment_id_buffer;
+ VP9_MV_BUFFER vp9_mv_temporal_buffer_curr;
+ VP9_MV_BUFFER vp9_mv_temporal_buffer_last;
unsigned short first_inter_slice_collocated_ref_idx;
unsigned short first_inter_slice_collocated_from_l0_flag;
int first_inter_slice_valid;
+
+ vp9_last_frame_status last_frame;
+ FRAME_CONTEXT vp9_frame_ctx[FRAME_CONTEXTS];
+ FRAME_CONTEXT vp9_fc_inter_default;
+ FRAME_CONTEXT vp9_fc_key_default;
};
#endif /* GEN9_MFD_H */