summaryrefslogtreecommitdiff
path: root/libavdevice
diff options
context:
space:
mode:
Diffstat (limited to 'libavdevice')
-rw-r--r--libavdevice/vfwcap.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libavdevice/vfwcap.c b/libavdevice/vfwcap.c
index ababab9c84..1ab5548cef 100644
--- a/libavdevice/vfwcap.c
+++ b/libavdevice/vfwcap.c
@@ -308,8 +308,7 @@ static int vfw_read_header(AVFormatContext *s, AVFormatParameters *ap)
}
ret = SendMessage(ctx->hwnd, WM_CAP_GET_VIDEOFORMAT, bisize, (LPARAM) bi);
if(!ret) {
- av_free(bi);
- goto fail_io;
+ goto fail_bi;
}
dump_bih(s, &bi->bmiHeader);
@@ -322,8 +321,7 @@ static int vfw_read_header(AVFormatContext *s, AVFormatParameters *ap)
ret = SendMessage(ctx->hwnd, WM_CAP_SET_VIDEOFORMAT, bisize, (LPARAM) bi);
if(!ret) {
av_log(s, AV_LOG_ERROR, "Could not set Video Format.\n");
- av_free(bi);
- goto fail_io;
+ goto fail_bi;
}
biCompression = bi->bmiHeader.biCompression;
@@ -392,6 +390,9 @@ static int vfw_read_header(AVFormatContext *s, AVFormatParameters *ap)
return 0;
+fail_bi:
+ av_free(bi);
+
fail_io:
vfw_read_close(s);
return AVERROR_IO;