summaryrefslogtreecommitdiff
path: root/libavdevice/vfwcap.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavdevice/vfwcap.c')
-rw-r--r--libavdevice/vfwcap.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/libavdevice/vfwcap.c b/libavdevice/vfwcap.c
index 4a027225bd..5dee0e0140 100644
--- a/libavdevice/vfwcap.c
+++ b/libavdevice/vfwcap.c
@@ -201,7 +201,22 @@ fail:
return FALSE;
}
-static int vfw_read_close(AVFormatContext *s);
+static int vfw_read_close(AVFormatContext *s)
+{
+ struct vfw_ctx *ctx = s->priv_data;
+
+ if(ctx->hwnd) {
+ SendMessage(ctx->hwnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
+ SendMessage(ctx->hwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0);
+ DestroyWindow(ctx->hwnd);
+ }
+ if(ctx->mutex)
+ CloseHandle(ctx->mutex);
+ if(ctx->event)
+ CloseHandle(ctx->event);
+
+ return 0;
+}
static int vfw_read_header(AVFormatContext *s, AVFormatParameters *ap)
{
@@ -402,23 +417,6 @@ static int vfw_read_packet(AVFormatContext *s, AVPacket *pkt)
return pkt->size;
}
-static int vfw_read_close(AVFormatContext *s)
-{
- struct vfw_ctx *ctx = s->priv_data;
-
- if(ctx->hwnd) {
- SendMessage(ctx->hwnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
- SendMessage(ctx->hwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0);
- DestroyWindow(ctx->hwnd);
- }
- if(ctx->mutex)
- CloseHandle(ctx->mutex);
- if(ctx->event)
- CloseHandle(ctx->event);
-
- return 0;
-}
-
AVInputFormat vfwcap_demuxer = {
"vfwcap",
NULL_IF_CONFIG_SMALL("VFW video capture"),