Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright (C) 2006-2012 Intel Corporation
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a
  5.  * copy of this software and associated documentation files (the "Software"),
  6.  * to deal in the Software without restriction, including without limitation
  7.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8.  * and/or sell copies of the Software, and to permit persons to whom the
  9.  * Software is furnished to do so, subject to the following conditions:
  10.  *
  11.  * The above copyright notice and this permission notice (including the next
  12.  * paragraph) shall be included in all copies or substantial portions of the
  13.  * Software.
  14.  *
  15.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  18.  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  20.  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  21.  * DEALINGS IN THE SOFTWARE.
  22.  */
  23.  
  24. #ifndef I965_DECODER_UTILS_H
  25. #define I965_DECODER_UTILS_H
  26.  
  27. #include "i965_decoder.h"
  28. #include "intel_batchbuffer.h"
  29.  
  30. struct decode_state;
  31.  
  32. int
  33. mpeg2_wa_slice_vertical_position(
  34.     struct decode_state           *decode_state,
  35.     VAPictureParameterBufferMPEG2 *pic_param
  36. );
  37.  
  38. void
  39. mpeg2_set_reference_surfaces(
  40.     VADriverContextP               ctx,
  41.     GenFrameStore                  ref_frames[MAX_GEN_REFERENCE_FRAMES],
  42.     struct decode_state           *decode_state,
  43.     VAPictureParameterBufferMPEG2 *pic_param
  44. );
  45.  
  46. VAStatus
  47. avc_ensure_surface_bo(
  48.     VADriverContextP                    ctx,
  49.     struct decode_state                *decode_state,
  50.     struct object_surface              *obj_surface,
  51.     const VAPictureParameterBufferH264 *pic_param
  52. );
  53.  
  54. void
  55. avc_gen_default_iq_matrix(VAIQMatrixBufferH264 *iq_matrix);
  56.  
  57. int
  58. avc_get_picture_id(struct object_surface *obj_surface);
  59.  
  60. VAPictureH264 *
  61. avc_find_picture(VASurfaceID id, VAPictureH264 *pic_list, int pic_list_count);
  62.  
  63. unsigned int
  64. avc_get_first_mb_bit_offset(
  65.     dri_bo                     *slice_data_bo,
  66.     VASliceParameterBufferH264 *slice_param,
  67.     unsigned int                mode_flag
  68. );
  69.  
  70. unsigned int
  71. avc_get_first_mb_bit_offset_with_epb(
  72.     dri_bo                     *slice_data_bo,
  73.     VASliceParameterBufferH264 *slice_param,
  74.     unsigned int                mode_flag
  75. );
  76.  
  77. void
  78. gen5_fill_avc_ref_idx_state(
  79.     uint8_t             state[32],
  80.     const VAPictureH264 ref_list[32],
  81.     unsigned int        ref_list_count,
  82.     const GenFrameStore frame_store[MAX_GEN_REFERENCE_FRAMES]
  83. );
  84.  
  85. void
  86. gen6_send_avc_ref_idx_state(
  87.     struct intel_batchbuffer         *batch,
  88.     const VASliceParameterBufferH264 *slice_param,
  89.     const GenFrameStore               frame_store[MAX_GEN_REFERENCE_FRAMES]
  90. );
  91.  
  92. void
  93. gen6_mfd_avc_phantom_slice(VADriverContextP ctx,
  94.                            VAPictureParameterBufferH264 *pic_param,
  95.                            VASliceParameterBufferH264 *next_slice_param,
  96.                            struct intel_batchbuffer *batch
  97. );
  98.  
  99. VAStatus
  100. intel_decoder_sanity_check_input(VADriverContextP ctx,
  101.                                  VAProfile profile,
  102.                                  struct decode_state *decode_state);
  103.  
  104. void
  105. intel_update_avc_frame_store_index(
  106.     VADriverContextP                    ctx,
  107.     struct decode_state                *decode_state,
  108.     VAPictureParameterBufferH264       *pic_param,
  109.     GenFrameStore                       frame_store[MAX_GEN_REFERENCE_FRAMES],
  110.     GenFrameStoreContext               *fs_ctx
  111. );
  112.  
  113. void
  114. gen75_update_avc_frame_store_index(
  115.     VADriverContextP                    ctx,
  116.     struct decode_state                *decode_state,
  117.     VAPictureParameterBufferH264       *pic_param,
  118.     GenFrameStore                       frame_store[MAX_GEN_REFERENCE_FRAMES]
  119. );
  120.  
  121. bool
  122. gen75_fill_avc_picid_list(
  123.     uint16_t                            pic_ids[16],
  124.     GenFrameStore                       frame_store[MAX_GEN_REFERENCE_FRAMES]
  125. );
  126.  
  127. bool
  128. gen75_send_avc_picid_state(
  129.     struct intel_batchbuffer           *batch,
  130.     GenFrameStore                       frame_store[MAX_GEN_REFERENCE_FRAMES]
  131. );
  132.  
  133. void
  134. intel_update_vc1_frame_store_index(VADriverContextP ctx,
  135.                                    struct decode_state *decode_state,
  136.                                    VAPictureParameterBufferVC1 *pic_param,
  137.                                    GenFrameStore frame_store[MAX_GEN_REFERENCE_FRAMES]);
  138.  
  139. VASliceParameterBufferMPEG2 *
  140. intel_mpeg2_find_next_slice(struct decode_state *decode_state,
  141.                             VAPictureParameterBufferMPEG2 *pic_param,
  142.                             VASliceParameterBufferMPEG2 *slice_param,
  143.                             int *group_idx,
  144.                             int *element_idx);
  145.  
  146.  
  147. void
  148. intel_update_vp8_frame_store_index(VADriverContextP ctx,
  149.                                    struct decode_state *decode_state,
  150.                                    VAPictureParameterBufferVP8 *pic_param,
  151.                                    GenFrameStore frame_store[MAX_GEN_REFERENCE_FRAMES]);
  152.  
  153. bool
  154. intel_ensure_vp8_segmentation_buffer(VADriverContextP ctx, GenBuffer *buf,
  155.     unsigned int mb_width, unsigned int mb_height);
  156.  
  157. #endif /* I965_DECODER_UTILS_H */
  158.