g3dvl: Add max_references parameter to vl_create_decoder()
Signed-off-by: Emeric Grange <emeric.grange@gmail.com>
This commit is contained in:
parent
42fddacaba
commit
82e8bf36d8
|
@ -62,7 +62,7 @@ vl_create_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 width, unsigned height, unsigned max_references)
|
||||
{
|
||||
unsigned buffer_width, buffer_height;
|
||||
bool pot_buffers;
|
||||
|
@ -82,7 +82,7 @@ vl_create_decoder(struct pipe_context *pipe,
|
|||
|
||||
switch (u_reduce_video_profile(profile)) {
|
||||
case PIPE_VIDEO_CODEC_MPEG12:
|
||||
return vl_create_mpeg12_decoder(pipe, profile, entrypoint, chroma_format, buffer_width, buffer_height);
|
||||
return vl_create_mpeg12_decoder(pipe, profile, entrypoint, chroma_format, buffer_width, buffer_height, max_references);
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -51,6 +51,6 @@ vl_create_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 width, unsigned height, unsigned max_references);
|
||||
|
||||
#endif /* vl_decoder_h */
|
||||
|
|
|
@ -1035,7 +1035,7 @@ vl_create_mpeg12_decoder(struct pipe_context *context,
|
|||
enum pipe_video_profile profile,
|
||||
enum pipe_video_entrypoint entrypoint,
|
||||
enum pipe_video_chroma_format chroma_format,
|
||||
unsigned width, unsigned height)
|
||||
unsigned width, unsigned height, unsigned max_references)
|
||||
{
|
||||
const unsigned block_size_pixels = BLOCK_WIDTH * BLOCK_HEIGHT;
|
||||
const struct format_config *format_config;
|
||||
|
@ -1054,6 +1054,7 @@ vl_create_mpeg12_decoder(struct pipe_context *context,
|
|||
dec->base.chroma_format = chroma_format;
|
||||
dec->base.width = width;
|
||||
dec->base.height = height;
|
||||
dec->base.max_references = max_references;
|
||||
|
||||
dec->base.destroy = vl_mpeg12_destroy;
|
||||
dec->base.create_buffer = vl_mpeg12_create_buffer;
|
||||
|
|
|
@ -111,6 +111,6 @@ 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 width, unsigned height, unsigned max_references);
|
||||
|
||||
#endif /* vl_mpeg12_decoder_h */
|
||||
|
|
|
@ -406,7 +406,7 @@ struct pipe_context {
|
|||
enum pipe_video_profile profile,
|
||||
enum pipe_video_entrypoint entrypoint,
|
||||
enum pipe_video_chroma_format chroma_format,
|
||||
unsigned width, unsigned height );
|
||||
unsigned width, unsigned height, unsigned max_references );
|
||||
|
||||
/**
|
||||
* Creates a video buffer as decoding target
|
||||
|
|
|
@ -52,6 +52,7 @@ struct pipe_video_decoder
|
|||
enum pipe_video_chroma_format chroma_format;
|
||||
unsigned width;
|
||||
unsigned height;
|
||||
unsigned max_references;
|
||||
|
||||
/**
|
||||
* destroy this video decoder
|
||||
|
|
|
@ -69,14 +69,14 @@ vlVdpDecoderCreate(VdpDevice device,
|
|||
|
||||
vldecoder->device = dev;
|
||||
|
||||
// TODO: Define max_references. Used mainly for H264
|
||||
vldecoder->decoder = pipe->create_video_decoder
|
||||
(
|
||||
pipe, p_profile,
|
||||
PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
|
||||
PIPE_VIDEO_CHROMA_FORMAT_420,
|
||||
width, height
|
||||
width, height, max_references
|
||||
);
|
||||
|
||||
if (!vldecoder->decoder) {
|
||||
ret = VDP_STATUS_ERROR;
|
||||
goto error_decoder;
|
||||
|
|
|
@ -250,7 +250,7 @@ Status XvMCCreateContext(Display *dpy, XvPortID port, int surface_type_id,
|
|||
ProfileToPipe(mc_type),
|
||||
(mc_type & XVMC_IDCT) ? PIPE_VIDEO_ENTRYPOINT_IDCT : PIPE_VIDEO_ENTRYPOINT_MC,
|
||||
FormatToPipe(chroma_format),
|
||||
width, height
|
||||
width, height, 2
|
||||
);
|
||||
|
||||
if (!context_priv->decoder) {
|
||||
|
|
Loading…
Reference in New Issue