vdpau: get at least the very basic mixer functions working
This commit is contained in:
@@ -111,11 +111,28 @@ VdpStatus vlVdpVideoMixerRender(VdpVideoMixer mixer,
|
||||
uint32_t layer_count,
|
||||
VdpLayer const *layers)
|
||||
{
|
||||
if (!(background_source_rect && video_surface_past && video_surface_future &&
|
||||
video_source_rect && destination_rect && destination_video_rect && layers))
|
||||
return VDP_STATUS_INVALID_POINTER;
|
||||
vlVdpVideoMixer *vmixer;
|
||||
vlVdpSurface *surf;
|
||||
vlVdpOutputSurface *dst;
|
||||
|
||||
return VDP_STATUS_NO_IMPLEMENTATION;
|
||||
vmixer = vlGetDataHTAB(mixer);
|
||||
if (!vmixer)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
|
||||
surf = vlGetDataHTAB(video_surface_current);
|
||||
if (!surf)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
|
||||
dst = vlGetDataHTAB(destination_surface);
|
||||
if (!dst)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
|
||||
vmixer->compositor->clear_layers(vmixer->compositor);
|
||||
vmixer->compositor->set_buffer_layer(vmixer->compositor, 0, surf->video_buffer, NULL, NULL);
|
||||
vmixer->compositor->render_picture(vmixer->compositor, PIPE_MPEG12_PICTURE_TYPE_FRAME,
|
||||
dst->surface, NULL, NULL);
|
||||
|
||||
return VDP_STATUS_OK;
|
||||
}
|
||||
|
||||
VdpStatus
|
||||
|
||||
Reference in New Issue
Block a user