if (obj_context->codec_type == CODEC_PROC) {
i965_release_buffer_store(&obj_context->codec_state.proc.pipeline_param);
- for (i = 0; i < VAProcFilterCount; i++)
- i965_release_buffer_store(&obj_context->codec_state.proc.filter_param[i]);
} else if (obj_context->codec_type == CODEC_ENC) {
assert(obj_context->codec_state.encode.num_slice_params <= obj_context->codec_state.encode.max_slice_params);
i965_release_buffer_store(&obj_context->codec_state.encode.pic_param);
#define DEF_RENDER_PROC_SINGLE_BUFFER_FUNC(name, member) DEF_RENDER_SINGLE_BUFFER_FUNC(proc, name, member)
DEF_RENDER_PROC_SINGLE_BUFFER_FUNC(pipeline_parameter, pipeline_param)
-static VAStatus
-i965_render_proc_filter_parameter_buffer(VADriverContextP ctx,
- struct object_context *obj_context,
- struct object_buffer *obj_buffer,
- VAProcFilterType type)
-{
- struct proc_state *proc = &obj_context->codec_state.proc;
-
- assert(obj_buffer->buffer_store->bo == NULL);
- assert(obj_buffer->buffer_store->buffer);
- i965_release_buffer_store(&proc->filter_param[type]);
- i965_reference_buffer_store(&proc->filter_param[type], obj_buffer->buffer_store);
-
- return VA_STATUS_SUCCESS;
-}
-
static VAStatus
i965_proc_render_picture(VADriverContextP ctx,
VAContextID context,
switch (obj_buffer->type) {
case VAProcPipelineParameterBufferType:
- /* FIXME: */
vaStatus = I965_RENDER_PROC_BUFFER(pipeline_parameter);
break;
- case VAProcFilterParameterBufferType:
- {
- /* FIXME: */
- VAProcFilterParameterBuffer *param = (VAProcFilterParameterBuffer *)obj_buffer->buffer_store->buffer;
- vaStatus = i965_render_proc_filter_parameter_buffer(ctx, obj_context, obj_buffer, param->type);
- break;
- }
-
default:
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE;
break;
for (i = 0; i < pipeline_param->num_filters; i++) {
struct object_buffer *obj_buffer = BUFFER(pipeline_param->filters[i]);
- VAProcFilterParameterBufferBase *base = (VAProcFilterParameterBufferBase *)obj_buffer->buffer_store->buffer;
- VAProcFilterType filter_type = base->type;
+ VAProcFilterParameterBufferBase *filter_param = (VAProcFilterParameterBufferBase *)obj_buffer->buffer_store->buffer;
+ VAProcFilterType filter_type = filter_param->type;
VASurfaceID out_surface_id = VA_INVALID_ID;
- void *filter_param = NULL;
if (procfilter_to_pp_flag[filter_type] != PP_NULL) {
- if (proc_state->filter_param[filter_type])
- filter_param = proc_state->filter_param[filter_type]->buffer;
-
status = i965_CreateSurfaces(ctx,
in_width,
in_height,