summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAndoni Morales Alastruey <ylatuya@gmail.com>2012-06-19 20:16:40 +0200
committerAndoni Morales Alastruey <ylatuya@gmail.com>2012-06-20 11:58:34 +0200
commitae09c82515230f084e39542ba3a130667e8d6c99 (patch)
tree5beb86f4190167449cb9e50c5eff56711c3e4fbd /sys
parentbe735b74311ea718f924f80076f42920a47f0f8b (diff)
d3dvideosink: clean up element
Remove old commented code and uneeded extra indentation
Diffstat (limited to 'sys')
-rw-r--r--sys/d3dvideosink/d3dvideosink.c256
1 files changed, 80 insertions, 176 deletions
diff --git a/sys/d3dvideosink/d3dvideosink.c b/sys/d3dvideosink/d3dvideosink.c
index 25fd9d231..18686f7f6 100644
--- a/sys/d3dvideosink/d3dvideosink.c
+++ b/sys/d3dvideosink/d3dvideosink.c
@@ -1011,7 +1011,6 @@ gst_d3dvideosink_window_thread (GstD3DVideoSink * sink)
/* start message loop processing our default window messages */
while (TRUE) {
- //while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
while (GetMessage (&msg, NULL, 0, 0)) {
TranslateMessage (&msg);
DispatchMessage (&msg);
@@ -1025,14 +1024,6 @@ gst_d3dvideosink_window_thread (GstD3DVideoSink * sink)
sink->window_handle = NULL;
return NULL;
-/*destroy_window:*/
-/* if (video_window) { */
-/* DestroyWindow(video_window); */
-/* UnregisterClass(WndClass.lpszClassName, WndClass.hInstance); */
-/* } */
-/* sink->window_handle = NULL; */
-/* ReleaseSemaphore (sink->window_created_signal, 1, NULL); */
-/* return NULL; */
}
static gboolean
@@ -1096,20 +1087,12 @@ gst_d3dvideosink_set_window_handle (GstXOverlay * overlay, guintptr window_id)
gst_d3dvideosink_update (GST_BASE_SINK_CAST (sink));
return;
-/*error:*/
-/* GST_DEBUG("Error attempting to change the window id for sink %d to %d", sink, hWnd); */
-/* GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK(sink); */
-/* return; */
}
/* Hook for out-of-process rendering */
LRESULT CALLBACK
gst_d3dvideosink_hook_proc (int nCode, WPARAM wParam, LPARAM lParam)
{
- //LPCWPSTRUCT p = (LPCWPSTRUCT)lParam;
- //
- //if (p && p->hwnd)
- // WndProcHook(p->hwnd, p->message, p->wParam, p->lParam);
return CallNextHookEx (NULL, nCode, wParam, lParam);
}
@@ -1764,15 +1747,6 @@ success:
GST_D3DVIDEOSINK_D3D_DEVICE_UNLOCK (sink);
gst_d3dvideosink_refresh (sink);
return GST_FLOW_OK;
-#if 0
-wrong_state:
- GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink);
- return GST_FLOW_WRONG_STATE;
-/*unexpected:*/
-/* GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK(sink); */
-/* */
-/* return GST_FLOW_UNEXPECTED; */
-#endif
error:
GST_D3DVIDEOSINK_D3D_DEVICE_UNLOCK (sink);
return GST_FLOW_ERROR;
@@ -1782,64 +1756,63 @@ error:
static gboolean
gst_d3dvideosink_refresh (GstD3DVideoSink * sink)
{
+ HRESULT hr;
+ LPDIRECT3DSURFACE9 backBuffer;
+
if (!GST_D3DVIDEOSINK_D3D_DEVICE_TRYLOCK (sink))
return TRUE;
- {
- HRESULT hr;
- LPDIRECT3DSURFACE9 backBuffer;
- if (!sink->d3ddev) {
- if (!shared.device_lost)
- GST_DEBUG ("No Direct3D device has been created");
- goto error;
- }
+ if (!sink->d3ddev) {
+ if (!shared.device_lost)
+ GST_DEBUG ("No Direct3D device has been created");
+ goto error;
+ }
- if (!sink->d3d_offscreen_surface) {
- GST_DEBUG ("No Direct3D offscreen surface has been created");
- goto error;
- }
+ if (!sink->d3d_offscreen_surface) {
+ GST_DEBUG ("No Direct3D offscreen surface has been created");
+ goto error;
+ }
- if (sink->window_closed) {
- GST_DEBUG ("Window has been closed");
- goto error;
- }
+ if (sink->window_closed) {
+ GST_DEBUG ("Window has been closed");
+ goto error;
+ }
- /* Set the render target to our swap chain */
- if (FAILED (IDirect3DDevice9_GetBackBuffer (sink->d3ddev, 0, 0,
- D3DBACKBUFFER_TYPE_MONO, &backBuffer))) {
- GST_ERROR_OBJECT (sink, "failed to get back buffer");
- goto error;
- }
- IDirect3DDevice9_SetRenderTarget (sink->d3ddev, 0, backBuffer);
- IDirect3DSurface9_Release (backBuffer);
+ /* Set the render target to our swap chain */
+ if (FAILED (IDirect3DDevice9_GetBackBuffer (sink->d3ddev, 0, 0,
+ D3DBACKBUFFER_TYPE_MONO, &backBuffer))) {
+ GST_ERROR_OBJECT (sink, "failed to get back buffer");
+ goto error;
+ }
+ IDirect3DDevice9_SetRenderTarget (sink->d3ddev, 0, backBuffer);
+ IDirect3DSurface9_Release (backBuffer);
- /* Clear the target */
- IDirect3DDevice9_Clear (sink->d3ddev, 0, NULL, D3DCLEAR_TARGET,
- D3DCOLOR_XRGB (0, 0, 0), 1.0f, 0);
+ /* Clear the target */
+ IDirect3DDevice9_Clear (sink->d3ddev, 0, NULL, D3DCLEAR_TARGET,
+ D3DCOLOR_XRGB (0, 0, 0), 1.0f, 0);
- if (SUCCEEDED (IDirect3DDevice9_BeginScene (sink->d3ddev))) {
- gst_d3dvideosink_stretch (sink, backBuffer);
- IDirect3DDevice9_EndScene (sink->d3ddev);
- }
- IDirect3DSurface9_Release (backBuffer);
- gst_d3dvideosink_flush_gpu (sink);
- /* Swap back and front buffers on video card and present to the user */
- if (FAILED (hr =
- IDirect3DDevice9_Present (sink->d3ddev, NULL, NULL, NULL, NULL))) {
- switch (hr) {
- case D3DERR_DEVICELOST:
- case D3DERR_DEVICENOTRESET:
- gst_d3dvideosink_notify_device_lost (sink);
- break;
- default:
- goto error;
- }
+ if (SUCCEEDED (IDirect3DDevice9_BeginScene (sink->d3ddev))) {
+ gst_d3dvideosink_stretch (sink, backBuffer);
+ IDirect3DDevice9_EndScene (sink->d3ddev);
+ }
+ IDirect3DSurface9_Release (backBuffer);
+ gst_d3dvideosink_flush_gpu (sink);
+ /* Swap back and front buffers on video card and present to the user */
+ if (FAILED (hr =
+ IDirect3DDevice9_Present (sink->d3ddev, NULL, NULL, NULL, NULL))) {
+ switch (hr) {
+ case D3DERR_DEVICELOST:
+ case D3DERR_DEVICENOTRESET:
+ gst_d3dvideosink_notify_device_lost (sink);
+ break;
+ default:
+ goto error;
}
}
-/*success:*/
GST_D3DVIDEOSINK_D3D_DEVICE_UNLOCK (sink);
return TRUE;
+
error:
GST_D3DVIDEOSINK_D3D_DEVICE_UNLOCK (sink);
return FALSE;
@@ -1848,40 +1821,31 @@ error:
static gboolean
gst_d3dvideosink_update_all (GstD3DVideoSink * sink)
{
- GST_D3DVIDEOSINK_SHARED_D3D_LOCK; {
- GList *item;
- GstD3DVideoSink *s;
- for (item = g_list_first (shared.element_list); item; item = item->next) {
- s = (GstD3DVideoSink *) item->data;
- gst_d3dvideosink_update (GST_BASE_SINK (s));
- }
+ GList *item;
+ GstD3DVideoSink *s;
+
+ GST_D3DVIDEOSINK_SHARED_D3D_LOCK;
+ for (item = g_list_first (shared.element_list); item; item = item->next) {
+ s = (GstD3DVideoSink *) item->data;
+ gst_d3dvideosink_update (GST_BASE_SINK (s));
}
-/*success:*/
GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK;
return TRUE;
-/*error:*/
-/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */
-/* */
-/* return FALSE; */
}
static gboolean
gst_d3dvideosink_refresh_all (GstD3DVideoSink * sink)
{
- GST_D3DVIDEOSINK_SHARED_D3D_LOCK; {
- GList *item;
- GstD3DVideoSink *s;
- for (item = g_list_first (shared.element_list); item; item = item->next) {
- s = (GstD3DVideoSink *) item->data;
- gst_d3dvideosink_refresh (s);
- }
+ GList *item;
+ GstD3DVideoSink *s;
+
+ GST_D3DVIDEOSINK_SHARED_D3D_LOCK;
+ for (item = g_list_first (shared.element_list); item; item = item->next) {
+ s = (GstD3DVideoSink *) item->data;
+ gst_d3dvideosink_refresh (s);
}
-/*success:*/
GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK;
return TRUE;
-/*error:*/
-/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */
-/* return FALSE; */
}
static void
@@ -2138,22 +2102,6 @@ gst_d3dvideosink_initialize_d3d_device (GstD3DVideoSink * sink)
GST_DEBUG ("Determined Direct3D format: %" GST_FOURCC_FORMAT,
GST_FOURCC_ARGS (d3dfourcc));
- //Stencil/depth buffers aren't created by default when using swap chains
- //if (SUCCEEDED(IDirect3D9_CheckDeviceFormat(shared.d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dformat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, D3DFMT_D32))) {
- // d3dstencilformat = D3DFMT_D32;
- // d3dEnableAutoDepthStencil = TRUE;
- //} else if (SUCCEEDED(IDirect3D9_CheckDeviceFormat(shared.d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dformat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, D3DFMT_D24X8))) {
- // d3dstencilformat = D3DFMT_D24X8;
- // d3dEnableAutoDepthStencil = TRUE;
- //} else if (SUCCEEDED(IDirect3D9_CheckDeviceFormat(shared.d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dformat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, D3DFMT_D16))) {
- // d3dstencilformat = D3DFMT_D16;
- // d3dEnableAutoDepthStencil = TRUE;
- //} else {
- // d3dstencilformat = D3DFMT_X8R8G8B8;
- // d3dEnableAutoDepthStencil = FALSE;
- //}
- //
- //GST_DEBUG("Determined Direct3D stencil format: %d", d3dstencilformat);
GST_DEBUG ("Direct3D back buffer size: %dx%d", GST_VIDEO_SINK_WIDTH (sink),
GST_VIDEO_SINK_HEIGHT (sink));
@@ -2206,21 +2154,9 @@ gst_d3dvideosink_initialize_d3d_device (GstD3DVideoSink * sink)
sink->d3dfiltertype = d3dfiltertype;
- //if (FAILED(IDirect3DDevice9_GetDeviceCaps(
- // d3ddev,
- // &d3dcaps
- //))) {
- // /* Prevent memory leak */
- // IDirect3D9_Release(d3d);
- // GST_WARNING ("Unable to retrieve Direct3D device caps");
- // goto error;
- //}
-
/*success:*/
- //GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink);
return TRUE;
error:
- //GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink);
return FALSE;
}
@@ -2251,15 +2187,9 @@ gst_d3dvideosink_notify_device_lost (GstD3DVideoSink * sink)
PostMessage (shared.hidden_window_handle, WM_DIRECTX_D3D_INIT_DEVICELOST, 0,
(LPARAM) sink);
-/*success:*/
GST_DEBUG ("Successfully sent notification of device lost event for sink %p",
sink);
return TRUE;
-/*error:*/
-/* GST_DEBUG("Error attempting to send notification of device lost event for sink %d", sink); */
-/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */
-/* */
-/* return FALSE; */
}
static gboolean
@@ -2270,15 +2200,9 @@ gst_d3dvideosink_notify_device_reset (GstD3DVideoSink * sink)
SendMessage (shared.hidden_window_handle, WM_DIRECTX_D3D_END_DEVICELOST, 0,
(LPARAM) sink);
}
-/*success:*/
GST_DEBUG ("Successfully sent notification of device reset event for sink %p",
sink);
return TRUE;
-/*error:*/
-/* GST_DEBUG("Error attempting to send notification of reset lost event for sink %d", sink); */
-/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */
-/* */
-/* return FALSE; */
}
static gboolean
@@ -2286,52 +2210,36 @@ gst_d3dvideosink_device_lost (GstD3DVideoSink * sink)
{
/* Must be called from hidden window's message loop! */
- {
- if (shared.device_lost)
- GST_DEBUG ("Direct3D device lost");
-
- GST_DEBUG_OBJECT (sink, ". Resetting the device.");
-
- if (g_thread_self () != shared.hidden_window_thread) {
- GST_ERROR
- ("Direct3D device can only be reset by the thread that created it.");
- goto error;
- }
+ if (shared.device_lost)
+ GST_DEBUG ("Direct3D device lost");
- if (!shared.d3d) {
- GST_ERROR ("Direct3D device has not been initialized");
- goto error;
- }
+ GST_DEBUG_OBJECT (sink, ". Resetting the device.");
- {
- //GList *item;
- //GstD3DVideoSink *s;
+ if (g_thread_self () != shared.hidden_window_thread) {
+ GST_ERROR
+ ("Direct3D device can only be reset by the thread that created it.");
+ goto error;
+ }
- /* This is technically a bit different from the normal. We don't call reset(), instead */
- /* we recreate everything from scratch. */
+ if (!shared.d3d) {
+ GST_ERROR ("Direct3D device has not been initialized");
+ goto error;
+ }
- /* Release the device */
- if (!gst_d3dvideosink_release_d3d_device (sink))
- goto error;
+ /* This is technically a bit different from the normal. We don't call reset(), instead */
+ /* we recreate everything from scratch. */
- /* Recreate device */
- if (!gst_d3dvideosink_initialize_d3d_device (sink))
- goto error;
+ /* Release the device */
+ if (!gst_d3dvideosink_release_d3d_device (sink))
+ goto error;
- /* Reinitialize all swap chains, surfaces, buffers, etc. */
- /*
- for (item = g_list_first (shared.element_list); item; item = item->next) {
- s = (GstD3DVideoSink *) item->data;
- gst_d3dvideosink_initialize_swap_chain (s);
- }
- */
- }
+ /* Recreate device */
+ if (!gst_d3dvideosink_initialize_d3d_device (sink))
+ goto error;
- /* Let the hidden window know that it's okay to kill the timer */
- gst_d3dvideosink_notify_device_reset (sink);
- }
+ /* Let the hidden window know that it's okay to kill the timer */
+ gst_d3dvideosink_notify_device_reset (sink);
-/*success:*/
GST_DEBUG ("Direct3D device has successfully been reset.");
return TRUE;
error:
@@ -2356,7 +2264,6 @@ gst_d3dvideosink_release_d3d_device (GstD3DVideoSink * sink)
GST_DEBUG_OBJECT (sink,
"Direct3D offscreen surface released. Reference count: %d", ref_count);
}
- //GST_D3DVIDEOSINK_SWAP_CHAIN_UNLOCK (sink);
return TRUE;
}
@@ -2395,9 +2302,6 @@ gst_d3dvideosink_release_direct3d (GstD3DVideoSink * sink)
success:
GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK;
return TRUE;
-/*error:*/
-/* GST_D3DVIDEOSINK_SHARED_D3D_UNLOCK */
-/* return FALSE; */
}
static gboolean