Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef _I965_MEDIA_H264_H_
  2. #define _I965_MEDIA_H264_H_
  3.  
  4. #include "i965_avc_bsd.h"
  5. #include "i965_avc_hw_scoreboard.h"
  6. #include "i965_avc_ildb.h"
  7. #include "i965_decoder.h"
  8.  
  9. struct decode_state;
  10. struct i965_media_context;
  11.  
  12. #define INST_UNIT_GEN4  16
  13. #define INST_UNIT_GEN5  8
  14.  
  15. #define MB_CMD_IN_BYTES         64
  16. #define MB_CMD_IN_DWS           16
  17. #define MB_CMD_IN_OWS           4
  18.  
  19. enum {
  20.     H264_AVC_COMBINED = 0,
  21.     H264_AVC_NULL
  22. };
  23.  
  24. #define NUM_H264_AVC_KERNELS    2
  25.  
  26. struct i965_h264_context
  27. {
  28.     struct {
  29.         dri_bo *bo;
  30.         unsigned int mbs;
  31.     } avc_it_command_mb_info;
  32.  
  33.     struct {
  34.         dri_bo *bo;
  35.         long write_offset;
  36.     } avc_it_data;
  37.  
  38.     struct {
  39.         dri_bo *bo;
  40.     } avc_ildb_data;
  41.  
  42.     struct {
  43.         unsigned int width_in_mbs;
  44.         unsigned int height_in_mbs;
  45.         int mbaff_frame_flag;
  46.         int i_flag;
  47.     } picture;
  48.  
  49.     int enable_avc_ildb;
  50.     int use_avc_hw_scoreboard;
  51.  
  52.     int use_hw_w128;
  53.     unsigned int weight128_luma_l0;
  54.     unsigned int weight128_luma_l1;
  55.     unsigned int weight128_chroma_l0;
  56.     unsigned int weight128_chroma_l1;
  57.     char weight128_offset0_flag;
  58.     short weight128_offset0;
  59.  
  60.     struct i965_avc_bsd_context i965_avc_bsd_context;
  61.     struct i965_avc_hw_scoreboard_context avc_hw_scoreboard_context;
  62.     struct i965_avc_ildb_context avc_ildb_context;
  63.  
  64.     GenFrameStore fsid_list[MAX_GEN_REFERENCE_FRAMES];
  65.  
  66.     struct i965_kernel avc_kernels[NUM_H264_AVC_KERNELS];
  67.     struct intel_batchbuffer *batch;
  68. };
  69.  
  70. void i965_media_h264_decode_init(VADriverContextP ctx, struct decode_state *decode_state, struct i965_media_context *media_context);
  71. void i965_media_h264_dec_context_init(VADriverContextP ctx, struct i965_media_context *media_context);
  72.  
  73. #endif /* _I965_MEDIA_H264_H_ */
  74.