Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/qcap_private.h | 2 +- dlls/qcap/v4l.c | 8 ++------ dlls/qcap/vfwcapture.c | 12 +++++++----- 3 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/dlls/qcap/qcap_private.h b/dlls/qcap/qcap_private.h index 823f8fed93..70a8c85ad4 100644 --- a/dlls/qcap/qcap_private.h +++ b/dlls/qcap/qcap_private.h @@ -50,7 +50,7 @@ struct video_capture_device_ops void (*destroy)(struct video_capture_device *device); HRESULT (*check_format)(struct video_capture_device *device, const AM_MEDIA_TYPE *mt); HRESULT (*set_format)(struct video_capture_device *device, const AM_MEDIA_TYPE *mt); - HRESULT (*get_format)(struct video_capture_device *device, AM_MEDIA_TYPE **mt); + HRESULT (*get_format)(struct video_capture_device *device, AM_MEDIA_TYPE *mt); HRESULT (*get_caps)(struct video_capture_device *device, LONG index, AM_MEDIA_TYPE **mt, VIDEO_STREAM_CONFIG_CAPS *caps); LONG (*get_caps_count)(struct video_capture_device *device); HRESULT (*get_prop_range)(struct video_capture_device *device, VideoProcAmpProperty property, diff --git a/dlls/qcap/v4l.c b/dlls/qcap/v4l.c index 5c2de2e3d6..2cf50b0c28 100644 --- a/dlls/qcap/v4l.c +++ b/dlls/qcap/v4l.c @@ -212,15 +212,11 @@ static HRESULT v4l_device_set_format(struct video_capture_device *iface, const A return S_OK; }
-static HRESULT v4l_device_get_format(struct video_capture_device *iface, AM_MEDIA_TYPE **mt) +static HRESULT v4l_device_get_format(struct video_capture_device *iface, AM_MEDIA_TYPE *mt) { struct v4l_device *device = v4l_device(iface);
- *mt = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE)); - if (!*mt) - return E_OUTOFMEMORY; - - return CopyMediaType(*mt, &device->current_caps->media_type); + return CopyMediaType(mt, &device->current_caps->media_type); }
static __u32 v4l2_cid_from_qcap_property(VideoProcAmpProperty property) diff --git a/dlls/qcap/vfwcapture.c b/dlls/qcap/vfwcapture.c index 9f4b859863..7d82a01109 100644 --- a/dlls/qcap/vfwcapture.c +++ b/dlls/qcap/vfwcapture.c @@ -223,16 +223,18 @@ AMStreamConfig_SetFormat(IAMStreamConfig *iface, AM_MEDIA_TYPE *pmt) return hr; }
-static HRESULT WINAPI AMStreamConfig_GetFormat(IAMStreamConfig *iface, AM_MEDIA_TYPE **pmt) +static HRESULT WINAPI AMStreamConfig_GetFormat(IAMStreamConfig *iface, AM_MEDIA_TYPE **mt) { VfwCapture *filter = impl_from_IAMStreamConfig(iface); HRESULT hr;
- TRACE("filter %p, mt %p.\n", filter, pmt); + TRACE("filter %p, mt %p.\n", filter, mt);
- hr = filter->device->ops->get_format(filter->device, pmt); - if (SUCCEEDED(hr)) - strmbase_dump_media_type(*pmt); + if (!(*mt = CoTaskMemAlloc(sizeof(**mt)))) + return E_OUTOFMEMORY; + + if (SUCCEEDED(hr = filter->device->ops->get_format(filter->device, *mt))) + strmbase_dump_media_type(*mt); return hr; }