g_return_val_if_fail (out_x != NULL, FALSE);
g_return_val_if_fail (out_y != NULL, FALSE);
+ g_return_val_if_fail (GST_IS_D3DVIDEOSINK (sink), FALSE);
LOCK_SINK (sink);
CHECK_WINDOW_HANDLE (sink, end, FALSE);
{
WNDPROC cur_wnd_proc = NULL;
+ g_return_if_fail (GST_IS_D3DVIDEOSINK (sink));
LOCK_SINK (sink);
GST_DEBUG_OBJECT (sink, " ");
WNDPROC cur_wnd_proc;
gboolean ret = FALSE;
+ g_return_val_if_fail (GST_IS_D3DVIDEOSINK (sink), FALSE);
LOCK_SINK (sink);
cur_wnd_proc =
static void
d3d_prepare_render_window (GstD3DVideoSink * sink)
{
+ g_return_if_fail (GST_IS_D3DVIDEOSINK (sink));
LOCK_SINK (sink);
if (sink->d3d.window_handle == NULL) {
d3d_set_window_handle (GstD3DVideoSink * sink, guintptr window_id,
gboolean is_internal)
{
+ g_return_if_fail (sink != NULL);
LOCK_SINK (sink);
if (sink->d3d.window_handle == (HWND) window_id) {
void
d3d_set_render_rectangle (GstD3DVideoSink * sink)
{
+ g_return_if_fail (sink != NULL);
LOCK_SINK (sink);
/* Setting the pointer lets us know render rect is set */
sink->d3d.render_rect = &sink->render_rect;
HWND hWnd;
gboolean ret = FALSE;
+ g_return_val_if_fail (GST_IS_D3DVIDEOSINK (sink), FALSE);
LOCK_SINK (sink);
/* if we already had an external window, then use it again */
static void
d3d_notify_device_reset (GstD3DVideoSink * sink)
{
+ g_return_if_fail (GST_IS_D3DVIDEOSINK (sink));
LOCK_SINK (sink);
if (sink->d3d.device_lost) {
LOCK_SINK (sink);
LOCK_CLASS (sink, klass);
+ CHECK_REF_COUNT (klass, sink, error);
/* We need a display device */
CHECK_D3D_DEVICE (klass, sink, error);
static gboolean
d3d_release_swap_chain (GstD3DVideoSink * sink)
{
- GstD3DVideoSinkClass *klass = GST_D3DVIDEOSINK_GET_CLASS (sink);
int ref_count;
gboolean ret = FALSE;
+ g_return_val_if_fail (GST_IS_D3DVIDEOSINK (sink), FALSE);
LOCK_SINK (sink);
GST_DEBUG_OBJECT (sink, "Releasing Direct3D swap chain");
- CHECK_D3D_DEVICE (klass, sink, end);
if (!sink->d3d.swapchain) {
ret = TRUE;
LOCK_CLASS (sink, klass);
+ CHECK_REF_COUNT (klass, sink, end);
CHECK_WINDOW_HANDLE (sink, end, FALSE);
CHECK_D3D_DEVICE (klass, sink, end);
CHECK_D3D_SWAPCHAIN (sink, end);
memset (&from_frame, 0, sizeof (from_frame));
memset (&to_frame, 0, sizeof (to_frame));
+ g_return_val_if_fail (GST_IS_D3DVIDEOSINK (sink), FALSE);
LOCK_SINK (sink);
if (!sink->d3d.renderable || sink->d3d.device_lost)
HRESULT hr;
RECT dstr, srcr, *pDestRect = NULL, *pSrcRect = NULL;
+ g_return_val_if_fail (GST_IS_D3DVIDEOSINK (sink), FALSE);
LOCK_SINK (sink);
if (!sink->d3d.renderable || sink->d3d.device_lost) {
LOCK_CLASS (sink, klass);
+ CHECK_REF_COUNT (klass, sink, end);
CHECK_WINDOW_HANDLE (sink, end, FALSE);
CHECK_D3D_DEVICE (klass, sink, end);
CHECK_D3D_SWAPCHAIN (sink, end);
HRESULT hr;
gboolean ret = FALSE;
+ g_return_val_if_fail (GST_IS_D3DVIDEOSINK (sink), FALSE);
LOCK_SINK (sink);
CHECK_WINDOW_HANDLE (sink, end, FALSE);
LPDIRECT3DSURFACE9 surface = NULL;
GstVideoCropMeta *crop = NULL;
+ g_return_val_if_fail (GST_IS_D3DVIDEOSINK (sink), GST_FLOW_ERROR);
LOCK_SINK (sink);
if (!sink->d3d.window_handle) {
g_return_if_fail (klass != NULL);
LOCK_CLASS (NULL, klass);
+ CHECK_REF_COUNT (klass, NULL, end);
if (!klass->d3d.device_lost) {
GList *lst, *clst;
klass->d3d.device_lost = TRUE;
/* Set timer to try reset at given interval */
SetTimer (klass->d3d.hidden_window, IDT_DEVICE_RESET_TIMER, 500, NULL);
}
+end:
UNLOCK_CLASS (NULL, klass);
}