X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Fvl%2Fvl_mpeg12_decoder.h;h=505dd675f663ff522e4b84845033e949828f1b98;hb=ef0d92459c3fda92fb3a42b55b7366d9b951a9bf;hp=817c1ffd110d3b45cf3a4b87ba9899ffceece3b8;hpb=82e8bf36d8fcd46bcb76ec300875a47c7312f1a1;p=mesa.git diff --git a/src/gallium/auxiliary/vl/vl_mpeg12_decoder.h b/src/gallium/auxiliary/vl/vl_mpeg12_decoder.h index 817c1ffd110..505dd675f66 100644 --- a/src/gallium/auxiliary/vl/vl_mpeg12_decoder.h +++ b/src/gallium/auxiliary/vl/vl_mpeg12_decoder.h @@ -18,7 +18,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -28,7 +28,9 @@ #ifndef vl_mpeg12_decoder_h #define vl_mpeg12_decoder_h -#include "pipe/p_video_decoder.h" +#include "pipe/p_video_codec.h" + +#include "util/list.h" #include "vl_mpeg12_bitstream.h" #include "vl_zscan.h" @@ -43,7 +45,8 @@ struct pipe_context; struct vl_mpeg12_decoder { - struct pipe_video_decoder base; + struct pipe_video_codec base; + struct pipe_context *context; unsigned chroma_width, chroma_height; @@ -74,12 +77,10 @@ struct vl_mpeg12_decoder void *dsa; - struct vl_mpeg12_buffer *current_buffer; - struct pipe_mpeg12_picture_desc picture_desc; - uint8_t intra_matrix[64]; - uint8_t non_intra_matrix[64]; - struct pipe_sampler_view *ref_frames[VL_MAX_REF_FRAMES][VL_MAX_PLANES]; - struct pipe_surface *target_surfaces[VL_MAX_PLANES]; + unsigned current_buffer; + struct vl_mpeg12_buffer *dec_buffers[4]; + + struct list_head buffer_privates; }; struct vl_mpeg12_buffer @@ -92,25 +93,22 @@ struct vl_mpeg12_buffer struct pipe_sampler_view *zscan_source; struct vl_mpg12_bs bs; - struct vl_zscan_buffer zscan[VL_MAX_PLANES]; - struct vl_idct_buffer idct[VL_MAX_PLANES]; - struct vl_mc_buffer mc[VL_MAX_PLANES]; + struct vl_zscan_buffer zscan[VL_NUM_COMPONENTS]; + struct vl_idct_buffer idct[VL_NUM_COMPONENTS]; + struct vl_mc_buffer mc[VL_NUM_COMPONENTS]; struct pipe_transfer *tex_transfer; short *texels; - struct vl_ycbcr_block *ycbcr_stream[VL_MAX_PLANES]; + struct vl_ycbcr_block *ycbcr_stream[VL_NUM_COMPONENTS]; struct vl_motionvector *mv_stream[VL_MAX_REF_FRAMES]; }; /** * creates a shader based mpeg12 decoder */ -struct pipe_video_decoder * +struct pipe_video_codec * vl_create_mpeg12_decoder(struct pipe_context *pipe, - enum pipe_video_profile profile, - enum pipe_video_entrypoint entrypoint, - enum pipe_video_chroma_format chroma_format, - unsigned width, unsigned height, unsigned max_references); + const struct pipe_video_codec *templat); #endif /* vl_mpeg12_decoder_h */