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)
{
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"),