Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/v4l.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/qcap/v4l.c b/dlls/qcap/v4l.c index b5a599eb0bc..2ba423ea0e5 100644 --- a/dlls/qcap/v4l.c +++ b/dlls/qcap/v4l.c @@ -116,9 +116,9 @@ static void v4l_device_destroy(struct video_capture_device *device) if (device->fd != -1) video_close(device->fd); if (device->caps_count) - heap_free(device->caps); - heap_free(device->image_data); - heap_free(device); + free(device->caps); + free(device->image_data); + free(device); }
static const struct caps *find_caps(struct video_capture_device *device, const AM_MEDIA_TYPE *mt) @@ -167,7 +167,7 @@ static HRESULT set_caps(struct video_capture_device *device, const struct caps * height = caps->video_info.bmiHeader.biHeight; image_size = width * height * caps->video_info.bmiHeader.biBitCount / 8;
- if (!(image_data = heap_alloc(image_size))) + if (!(image_data = malloc(image_size))) { ERR("Failed to allocate memory.\n"); return E_OUTOFMEMORY; @@ -183,14 +183,14 @@ static HRESULT set_caps(struct video_capture_device *device, const struct caps * || format.fmt.pix.height != height) { ERR("Failed to set pixel format: %s.\n", strerror(errno)); - heap_free(image_data); + free(image_data); return VFW_E_TYPE_NOT_ACCEPTED; }
device->current_caps = caps; device->image_size = image_size; device->image_pitch = width * caps->video_info.bmiHeader.biBitCount / 8; - heap_free(device->image_data); + free(device->image_data); device->image_data = image_data; return S_OK; } @@ -407,7 +407,7 @@ struct video_capture_device *v4l_device_create(USHORT index)
have_libv4l2 = video_init();
- if (!(device = heap_alloc_zero(sizeof(*device)))) + if (!(device = calloc(1, sizeof(*device)))) return NULL;
sprintf(path, "/dev/video%i", index); @@ -509,7 +509,7 @@ struct video_capture_device *v4l_device_create(USHORT index) else ERR("Failed to get fps: %s.\n", strerror(errno));
- new_caps = heap_realloc(device->caps, (device->caps_count + 1) * sizeof(*device->caps)); + new_caps = realloc(device->caps, (device->caps_count + 1) * sizeof(*device->caps)); if (!new_caps) goto error; device->caps = new_caps;
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/qcap_main.c | 2 +- dlls/qcap/qcap_private.h | 4 ++-- dlls/qcap/v4l.c | 25 ++++++++++++++----------- dlls/qcap/vfwcapture.c | 5 +++-- 4 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/dlls/qcap/qcap_main.c b/dlls/qcap/qcap_main.c index 411ef41ea20..e211b74dada 100644 --- a/dlls/qcap/qcap_main.c +++ b/dlls/qcap/qcap_main.c @@ -25,7 +25,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(qcap);
-static HINSTANCE qcap_instance; +HINSTANCE qcap_instance;
static LONG objects_ref = 0;
diff --git a/dlls/qcap/qcap_private.h b/dlls/qcap/qcap_private.h index 379d9908637..046821142d2 100644 --- a/dlls/qcap/qcap_private.h +++ b/dlls/qcap/qcap_private.h @@ -30,6 +30,8 @@ #include "wine/strmbase.h" #include "wine/unicode.h"
+extern HINSTANCE qcap_instance DECLSPEC_HIDDEN; + extern DWORD ObjectRefCount(BOOL increment) DECLSPEC_HIDDEN;
HRESULT audio_record_create(IUnknown *outer, IUnknown **out) DECLSPEC_HIDDEN; @@ -59,6 +61,4 @@ struct video_capture_funcs BOOL (*read_frame)(struct video_capture_device *device, BYTE *data); };
-extern const struct video_capture_funcs v4l_funcs; - #endif diff --git a/dlls/qcap/v4l.c b/dlls/qcap/v4l.c index 2ba423ea0e5..fd2c087640f 100644 --- a/dlls/qcap/v4l.c +++ b/dlls/qcap/v4l.c @@ -19,6 +19,10 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#if 0 +#pragma makedep unix +#endif + #define BIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD /* work around ioctl breakage on Android */
#include "config.h" @@ -47,7 +51,11 @@ #include <unistd.h> #endif
+#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "initguid.h" #include "qcap_private.h" +#include "winternl.h"
WINE_DEFAULT_DEBUG_CHANNEL(qcap);
@@ -558,17 +566,12 @@ const struct video_capture_funcs v4l_funcs = .read_frame = v4l_device_read_frame, };
-#else - -static struct video_capture_device *v4l_device_create(USHORT index) +NTSTATUS CDECL __wine_init_unix_lib(HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out) { - ERR("v4l2 was not present at compilation time.\n"); - return NULL; -} + if (reason != DLL_PROCESS_ATTACH) return STATUS_SUCCESS;
-const struct video_capture_funcs v4l_funcs = -{ - .create = v4l_device_create, -}; + *(const struct video_capture_funcs **)ptr_out = &v4l_funcs; + return STATUS_SUCCESS; +}
-#endif /* defined(VIDIOCMCAPTURE) */ +#endif /* HAVE_LINUX_VIDEODEV2_H */ diff --git a/dlls/qcap/vfwcapture.c b/dlls/qcap/vfwcapture.c index 8123dc4f6f7..7b8787ef99f 100644 --- a/dlls/qcap/vfwcapture.c +++ b/dlls/qcap/vfwcapture.c @@ -19,6 +19,7 @@ */
#include "qcap_private.h" +#include "winternl.h"
WINE_DEFAULT_DEBUG_CHANNEL(qcap);
@@ -839,7 +840,7 @@ static const IAMVideoControlVtbl IAMVideoControl_VTable =
static BOOL WINAPI load_capture_funcs(INIT_ONCE *once, void *param, void **context) { - capture_funcs = &v4l_funcs; + __wine_init_unix_lib(qcap_instance, DLL_PROCESS_ATTACH, NULL, &capture_funcs); return TRUE; }
@@ -850,7 +851,7 @@ HRESULT vfw_capture_create(IUnknown *outer, IUnknown **out) static const WCHAR source_name[] = {'O','u','t','p','u','t',0}; struct vfw_capture *object;
- if (!InitOnceExecuteOnce(&init_once, load_capture_funcs, NULL, NULL)) + if (!InitOnceExecuteOnce(&init_once, load_capture_funcs, NULL, NULL) || !capture_funcs) return E_FAIL;
if (!(object = CoTaskMemAlloc(sizeof(*object))))
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=82592
Your paranoid android.
=== debiant (build log) ===
Task: The win32 Wine build failed
=== debiant (build log) ===
Task: The wow64 Wine build failed
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/Makefile.in | 2 ++ dlls/qcap/filewriter.c | 4 ++-- dlls/qcap/qcap_private.h | 1 - 3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/qcap/Makefile.in b/dlls/qcap/Makefile.in index a3b6ba78fb9..298274accc6 100644 --- a/dlls/qcap/Makefile.in +++ b/dlls/qcap/Makefile.in @@ -3,6 +3,8 @@ IMPORTS = strmiids uuid ole32 oleaut32 gdi32 advapi32 DELAYIMPORTS = msvfw32 PARENTSRC = ../strmbase
+EXTRADLLFLAGS = -mno-cygwin + C_SRCS = \ audiorecord.c \ avico.c \ diff --git a/dlls/qcap/filewriter.c b/dlls/qcap/filewriter.c index c3ba6c4d3eb..c377471ed7d 100644 --- a/dlls/qcap/filewriter.c +++ b/dlls/qcap/filewriter.c @@ -245,9 +245,9 @@ static HRESULT WINAPI filesinkfilter_SetFileName(IFileSinkFilter *iface, if (mt) FIXME("Ignoring media type %p.\n", mt);
- if (!(new_filename = heap_alloc((strlenW(filename) + 1) * sizeof(WCHAR)))) + if (!(new_filename = heap_alloc((wcslen(filename) + 1) * sizeof(WCHAR)))) return E_OUTOFMEMORY; - strcpyW(new_filename, filename); + wcscpy(new_filename, filename);
heap_free(filter->filename); filter->filename = new_filename; diff --git a/dlls/qcap/qcap_private.h b/dlls/qcap/qcap_private.h index 046821142d2..29853862d1e 100644 --- a/dlls/qcap/qcap_private.h +++ b/dlls/qcap/qcap_private.h @@ -28,7 +28,6 @@ #include "wine/debug.h" #include "wine/heap.h" #include "wine/strmbase.h" -#include "wine/unicode.h"
extern HINSTANCE qcap_instance DECLSPEC_HIDDEN;
This reverts 4c2c98934154e2587348d45b1d4b05e66f253830.
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/Makefile.in | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/dlls/qcap/Makefile.in b/dlls/qcap/Makefile.in index 298274accc6..417e7f332c0 100644 --- a/dlls/qcap/Makefile.in +++ b/dlls/qcap/Makefile.in @@ -1,7 +1,6 @@ MODULE = qcap.dll -IMPORTS = strmiids uuid ole32 oleaut32 gdi32 advapi32 +IMPORTS = strmbase strmiids uuid ole32 oleaut32 DELAYIMPORTS = msvfw32 -PARENTSRC = ../strmbase
EXTRADLLFLAGS = -mno-cygwin
@@ -11,9 +10,6 @@ C_SRCS = \ avimux.c \ capturegraph.c \ filewriter.c \ - filter.c \ - mediatype.c \ - pin.c \ qcap_main.c \ smartteefilter.c \ v4l.c \
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/audiorecord.c | 3 +-- dlls/qcap/avico.c | 10 +++------- dlls/qcap/avimux.c | 13 +++---------- dlls/qcap/filewriter.c | 3 +-- dlls/qcap/qcap_main.c | 9 +++------ dlls/qcap/smartteefilter.c | 9 +++------ dlls/qcap/vfwcapture.c | 6 ++---- 7 files changed, 16 insertions(+), 37 deletions(-)
diff --git a/dlls/qcap/audiorecord.c b/dlls/qcap/audiorecord.c index 7477cca6d60..0021e8dd982 100644 --- a/dlls/qcap/audiorecord.c +++ b/dlls/qcap/audiorecord.c @@ -108,12 +108,11 @@ static HRESULT WINAPI PPB_Load(IPersistPropertyBag *iface, IPropertyBag *pPropBa AudioRecord *This = impl_from_IPersistPropertyBag(iface); HRESULT hr; VARIANT var; - static const WCHAR WaveInIDW[] = {'W','a','v','e','I','n','I','D',0};
TRACE("(%p/%p)->(%p, %p)\n", iface, This, pPropBag, pErrorLog);
V_VT(&var) = VT_I4; - hr = IPropertyBag_Read(pPropBag, WaveInIDW, &var, pErrorLog); + hr = IPropertyBag_Read(pPropBag, L"WaveInID", &var, pErrorLog); if (SUCCEEDED(hr)) { FIXME("FIXME: implement opening waveIn device %d\n", V_I4(&var)); diff --git a/dlls/qcap/avico.c b/dlls/qcap/avico.c index 01a43c9577d..f1730a394c5 100644 --- a/dlls/qcap/avico.c +++ b/dlls/qcap/avico.c @@ -213,12 +213,10 @@ static HRESULT WINAPI AVICompressorPropertyBag_Load(IPersistPropertyBag *iface, VARIANT v; HRESULT hres;
- static const WCHAR fcc_handlerW[] = {'F','c','c','H','a','n','d','l','e','r',0}; - TRACE("(%p)->(%p %p)\n", This, pPropBag, pErrorLog);
V_VT(&v) = VT_BSTR; - hres = IPropertyBag_Read(pPropBag, fcc_handlerW, &v, NULL); + hres = IPropertyBag_Read(pPropBag, L"FccHandler", &v, NULL); if(FAILED(hres)) { WARN("Could not read FccHandler: %08x\n", hres); return hres; @@ -470,8 +468,6 @@ static const struct strmbase_source_ops source_ops =
HRESULT avi_compressor_create(IUnknown *outer, IUnknown **out) { - static const WCHAR source_name[] = {'O','u','t',0}; - static const WCHAR sink_name[] = {'I','n',0}; AVICompressor *object;
if (!(object = heap_alloc_zero(sizeof(*object)))) @@ -480,8 +476,8 @@ HRESULT avi_compressor_create(IUnknown *outer, IUnknown **out) strmbase_filter_init(&object->filter, outer, &CLSID_AVICo, &filter_ops); object->IPersistPropertyBag_iface.lpVtbl = &PersistPropertyBagVtbl;
- strmbase_sink_init(&object->sink, &object->filter, sink_name, &sink_ops, NULL); - strmbase_source_init(&object->source, &object->filter, source_name, &source_ops); + strmbase_sink_init(&object->sink, &object->filter, L"In", &sink_ops, NULL); + strmbase_source_init(&object->source, &object->filter, L"Out", &source_ops);
TRACE("Created AVI compressor %p.\n", object); *out = &object->filter.IUnknown_inner; diff --git a/dlls/qcap/avimux.c b/dlls/qcap/avimux.c index 7ae2d673676..38d4bb7c88c 100644 --- a/dlls/qcap/avimux.c +++ b/dlls/qcap/avimux.c @@ -1777,15 +1777,14 @@ static const IQualityControlVtbl AviMuxIn_QualityControlVtbl = {
static HRESULT create_input_pin(AviMux *avimux) { - WCHAR name[] = {'I','n','p','u','t',' ','0','0',0}; AviMuxIn *object; + WCHAR name[19]; HRESULT hr;
if(avimux->input_pin_no >= MAX_PIN_NO-1) return E_FAIL;
- name[7] = '0' + (avimux->input_pin_no+1) % 10; - name[6] = '0' + (avimux->input_pin_no+1) / 10; + swprintf(name, ARRAY_SIZE(name), L"Input %02u", avimux->input_pin_no + 1);
if (!(object = heap_alloc_zero(sizeof(*object)))) return E_OUTOFMEMORY; @@ -1824,10 +1823,7 @@ static HRESULT create_input_pin(AviMux *avimux)
HRESULT avi_mux_create(IUnknown *outer, IUnknown **out) { - static const WCHAR output_name[] = {'A','V','I',' ','O','u','t',0}; - AviMux *avimux; - PIN_INFO info; HRESULT hr;
if (!(avimux = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AviMux)))) @@ -1840,10 +1836,7 @@ HRESULT avi_mux_create(IUnknown *outer, IUnknown **out) avimux->IPersistMediaPropertyBag_iface.lpVtbl = &PersistMediaPropertyBagVtbl; avimux->ISpecifyPropertyPages_iface.lpVtbl = &SpecifyPropertyPagesVtbl;
- info.dir = PINDIR_OUTPUT; - info.pFilter = &avimux->filter.IBaseFilter_iface; - lstrcpyW(info.achName, output_name); - strmbase_source_init(&avimux->source, &avimux->filter, output_name, &source_ops); + strmbase_source_init(&avimux->source, &avimux->filter, L"AVI Out", &source_ops); avimux->IQualityControl_iface.lpVtbl = &AviMuxOut_QualityControlVtbl; avimux->cur_stream = 0; avimux->cur_time = 0; diff --git a/dlls/qcap/filewriter.c b/dlls/qcap/filewriter.c index c377471ed7d..c67fe263d8d 100644 --- a/dlls/qcap/filewriter.c +++ b/dlls/qcap/filewriter.c @@ -315,7 +315,6 @@ static const IAMFilterMiscFlagsVtbl misc_flags_vtbl =
HRESULT file_writer_create(IUnknown *outer, IUnknown **out) { - static const WCHAR sink_name[] = {'i','n',0}; struct file_writer *object;
if (!(object = heap_alloc_zero(sizeof(*object)))) @@ -325,7 +324,7 @@ HRESULT file_writer_create(IUnknown *outer, IUnknown **out) object->IFileSinkFilter_iface.lpVtbl = &filesinkfilter_vtbl; object->IAMFilterMiscFlags_iface.lpVtbl = &misc_flags_vtbl;
- strmbase_sink_init(&object->sink, &object->filter, sink_name, &sink_ops, NULL); + strmbase_sink_init(&object->sink, &object->filter, L"in", &sink_ops, NULL);
TRACE("Created file writer %p.\n", object); *out = &object->filter.IUnknown_inner; diff --git a/dlls/qcap/qcap_main.c b/dlls/qcap/qcap_main.c index e211b74dada..2c7c1216996 100644 --- a/dlls/qcap/qcap_main.c +++ b/dlls/qcap/qcap_main.c @@ -229,9 +229,6 @@ static const REGFILTER2 reg_file_writer = */ HRESULT WINAPI DllRegisterServer(void) { - static const WCHAR avi_muxW[] = {'A','V','I',' ','M','u','x',0}; - static const WCHAR file_writerW[] = {'F','i','l','e',' ','w','r','i','t','e','r',0}; - static const WCHAR smart_teeW[] = {'S','m','a','r','t',' ','T','e','e',0}; IFilterMapper2 *mapper; HRESULT hr;
@@ -242,11 +239,11 @@ HRESULT WINAPI DllRegisterServer(void) &IID_IFilterMapper2, (void **)&mapper))) return hr;
- IFilterMapper2_RegisterFilter(mapper, &CLSID_AviDest, avi_muxW, + IFilterMapper2_RegisterFilter(mapper, &CLSID_AviDest, L"AVI Mux", NULL, NULL, NULL, ®_avi_mux); - IFilterMapper2_RegisterFilter(mapper, &CLSID_FileWriter, file_writerW, + IFilterMapper2_RegisterFilter(mapper, &CLSID_FileWriter, L"File writer", NULL, NULL, NULL, ®_file_writer); - IFilterMapper2_RegisterFilter(mapper, &CLSID_SmartTee, smart_teeW, + IFilterMapper2_RegisterFilter(mapper, &CLSID_SmartTee, L"Smart Tee", NULL, NULL, NULL, ®_smart_tee);
IFilterMapper2_Release(mapper); diff --git a/dlls/qcap/smartteefilter.c b/dlls/qcap/smartteefilter.c index 2f6f3ab2b79..4e23e6ee467 100644 --- a/dlls/qcap/smartteefilter.c +++ b/dlls/qcap/smartteefilter.c @@ -316,9 +316,6 @@ static const struct strmbase_source_ops preview_ops =
HRESULT smart_tee_create(IUnknown *outer, IUnknown **out) { - static const WCHAR captureW[] = {'C','a','p','t','u','r','e',0}; - static const WCHAR previewW[] = {'P','r','e','v','i','e','w',0}; - static const WCHAR inputW[] = {'I','n','p','u','t',0}; SmartTeeFilter *object; HRESULT hr;
@@ -327,7 +324,7 @@ HRESULT smart_tee_create(IUnknown *outer, IUnknown **out) memset(object, 0, sizeof(*object));
strmbase_filter_init(&object->filter, outer, &CLSID_SmartTee, &filter_ops); - strmbase_sink_init(&object->sink, &object->filter, inputW, &sink_ops, NULL); + strmbase_sink_init(&object->sink, &object->filter, L"Input", &sink_ops, NULL); hr = CoCreateInstance(&CLSID_MemoryAllocator, NULL, CLSCTX_INPROC_SERVER, &IID_IMemAllocator, (void **)&object->sink.pAllocator); if (FAILED(hr)) @@ -337,8 +334,8 @@ HRESULT smart_tee_create(IUnknown *outer, IUnknown **out) return hr; }
- strmbase_source_init(&object->capture, &object->filter, captureW, &capture_ops); - strmbase_source_init(&object->preview, &object->filter, previewW, &preview_ops); + strmbase_source_init(&object->capture, &object->filter, L"Capture", &capture_ops); + strmbase_source_init(&object->preview, &object->filter, L"Preview", &preview_ops);
TRACE("Created smart tee %p.\n", object); *out = &object->filter.IUnknown_inner; diff --git a/dlls/qcap/vfwcapture.c b/dlls/qcap/vfwcapture.c index 7b8787ef99f..ae6a9a055d1 100644 --- a/dlls/qcap/vfwcapture.c +++ b/dlls/qcap/vfwcapture.c @@ -530,7 +530,6 @@ static HRESULT WINAPI PPB_InitNew(IPersistPropertyBag * iface)
static HRESULT WINAPI PPB_Load(IPersistPropertyBag *iface, IPropertyBag *bag, IErrorLog *error_log) { - static const OLECHAR VFWIndex[] = {'V','F','W','I','n','d','e','x',0}; struct vfw_capture *filter = impl_from_IPersistPropertyBag(iface); HRESULT hr; VARIANT var; @@ -538,7 +537,7 @@ static HRESULT WINAPI PPB_Load(IPersistPropertyBag *iface, IPropertyBag *bag, IE TRACE("filter %p, bag %p, error_log %p.\n", filter, bag, error_log);
V_VT(&var) = VT_I4; - if (FAILED(hr = IPropertyBag_Read(bag, VFWIndex, &var, error_log))) + if (FAILED(hr = IPropertyBag_Read(bag, L"VFWIndex", &var, error_log))) return hr;
if (!(filter->device = capture_funcs->create(V_I4(&var)))) @@ -848,7 +847,6 @@ static INIT_ONCE init_once = INIT_ONCE_STATIC_INIT;
HRESULT vfw_capture_create(IUnknown *outer, IUnknown **out) { - static const WCHAR source_name[] = {'O','u','t','p','u','t',0}; struct vfw_capture *object;
if (!InitOnceExecuteOnce(&init_once, load_capture_funcs, NULL, NULL) || !capture_funcs) @@ -866,7 +864,7 @@ HRESULT vfw_capture_create(IUnknown *outer, IUnknown **out) object->IPersistPropertyBag_iface.lpVtbl = &IPersistPropertyBag_VTable; object->init = FALSE;
- strmbase_source_init(&object->source, &object->filter, source_name, &source_ops); + strmbase_source_init(&object->source, &object->filter, L"Output", &source_ops);
object->IKsPropertySet_iface.lpVtbl = &IKsPropertySet_VTable;
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/audiorecord.c | 5 ++--- dlls/qcap/avico.c | 12 +++++------- dlls/qcap/avimux.c | 26 ++++++++++++-------------- dlls/qcap/capturegraph.c | 4 ++-- dlls/qcap/filewriter.c | 11 +++++------ dlls/qcap/qcap_private.h | 1 - dlls/qcap/smartteefilter.c | 7 +++---- dlls/qcap/vfwcapture.c | 5 ++--- 8 files changed, 31 insertions(+), 40 deletions(-)
diff --git a/dlls/qcap/audiorecord.c b/dlls/qcap/audiorecord.c index 0021e8dd982..4c5f6646953 100644 --- a/dlls/qcap/audiorecord.c +++ b/dlls/qcap/audiorecord.c @@ -47,7 +47,7 @@ static void audio_record_destroy(struct strmbase_filter *iface) AudioRecord *filter = impl_from_strmbase_filter(iface);
strmbase_filter_cleanup(&filter->filter); - CoTaskMemFree(filter); + free(filter); }
static HRESULT audio_record_query_interface(struct strmbase_filter *iface, REFIID iid, void **out) @@ -144,9 +144,8 @@ HRESULT audio_record_create(IUnknown *outer, IUnknown **out) { AudioRecord *object;
- if (!(object = CoTaskMemAlloc(sizeof(*object)))) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY; - memset(object, 0, sizeof(*object));
object->IPersistPropertyBag_iface.lpVtbl = &PersistPropertyBagVtbl; strmbase_filter_init(&object->filter, outer, &CLSID_AudioRecord, &filter_ops); diff --git a/dlls/qcap/avico.c b/dlls/qcap/avico.c index f1730a394c5..fbcce49a441 100644 --- a/dlls/qcap/avico.c +++ b/dlls/qcap/avico.c @@ -85,13 +85,11 @@ static HRESULT fill_format_info(AVICompressor *This, VIDEOINFOHEADER *src_videoi }
size += FIELD_OFFSET(VIDEOINFOHEADER, bmiHeader); - This->videoinfo = heap_alloc(size); - if(!This->videoinfo) + if (!(This->videoinfo = calloc(1, size))) return E_OUTOFMEMORY;
This->videoinfo_size = size; This->driver_flags = icinfo.dwFlags; - memset(This->videoinfo, 0, sizeof(*This->videoinfo)); ICCompressGetFormat(This->hic, &src_videoinfo->bmiHeader, &This->videoinfo->bmiHeader);
This->videoinfo->dwBitRate = 10000000/src_videoinfo->AvgTimePerFrame * This->videoinfo->bmiHeader.biSizeImage * 8; @@ -117,11 +115,11 @@ static void avi_compressor_destroy(struct strmbase_filter *iface)
if (filter->hic) ICClose(filter->hic); - heap_free(filter->videoinfo); + free(filter->videoinfo); strmbase_sink_cleanup(&filter->sink); strmbase_source_cleanup(&filter->source); strmbase_filter_cleanup(&filter->filter); - heap_free(filter); + free(filter); }
static HRESULT avi_compressor_query_interface(struct strmbase_filter *iface, REFIID iid, void **out) @@ -401,7 +399,7 @@ static HRESULT sink_connect(struct strmbase_sink *iface, IPin *peer, const AM_ME static void sink_disconnect(struct strmbase_sink *iface) { AVICompressor *filter = impl_from_strmbase_pin(&iface->pin); - heap_free(filter->videoinfo); + free(filter->videoinfo); filter->videoinfo = NULL; }
@@ -470,7 +468,7 @@ HRESULT avi_compressor_create(IUnknown *outer, IUnknown **out) { AVICompressor *object;
- if (!(object = heap_alloc_zero(sizeof(*object)))) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY;
strmbase_filter_init(&object->filter, outer, &CLSID_AVICo, &filter_ops); diff --git a/dlls/qcap/avimux.c b/dlls/qcap/avimux.c index 38d4bb7c88c..0fcf5b8402a 100644 --- a/dlls/qcap/avimux.c +++ b/dlls/qcap/avimux.c @@ -125,12 +125,12 @@ static void avi_mux_destroy(struct strmbase_filter *iface) IMemAllocator_Release(filter->in[i]->samples_allocator); filter->in[i]->samples_allocator = NULL; strmbase_sink_cleanup(&filter->in[i]->pin); - heap_free(filter->in[i]); + free(filter->in[i]); }
- heap_free(filter->idx1); + free(filter->idx1); strmbase_filter_cleanup(&filter->filter); - heap_free(filter); + free(filter); ObjectRefCount(FALSE); }
@@ -225,8 +225,7 @@ static HRESULT out_write(AviMux *This, const void *data, int size) static inline HRESULT idx1_add_entry(AviMux *avimux, DWORD ckid, DWORD flags, DWORD off, DWORD len) { if(avimux->idx1_entries == avimux->idx1_size) { - AVIINDEXENTRY *new_idx = HeapReAlloc(GetProcessHeap(), 0, avimux->idx1, - sizeof(*avimux->idx1)*2*avimux->idx1_size); + AVIINDEXENTRY *new_idx = realloc(avimux->idx1, sizeof(*avimux->idx1) * 2 * avimux->idx1_size); if(!new_idx) return E_OUTOFMEMORY;
@@ -576,8 +575,7 @@ static HRESULT avi_mux_init_stream(struct strmbase_filter *iface) This->idx1_entries = 0; if(!This->idx1_size) { This->idx1_size = 1024; - This->idx1 = HeapAlloc(GetProcessHeap(), 0, sizeof(*This->idx1)*This->idx1_size); - if(!This->idx1) + if (!(This->idx1 = malloc(sizeof(*This->idx1) * This->idx1_size))) return E_OUTOFMEMORY; }
@@ -1433,7 +1431,7 @@ static HRESULT avi_mux_sink_connect(struct strmbase_sink *iface, IPin *peer, con return hr;
size = pmt->cbFormat - FIELD_OFFSET(VIDEOINFOHEADER, bmiHeader); - avimuxin->strf = CoTaskMemAlloc(sizeof(RIFFCHUNK) + ALIGN(FIELD_OFFSET(BITMAPINFO, bmiColors[vih->bmiHeader.biClrUsed]))); + avimuxin->strf = malloc(sizeof(RIFFCHUNK) + ALIGN(FIELD_OFFSET(BITMAPINFO, bmiColors[vih->bmiHeader.biClrUsed]))); avimuxin->strf->fcc = ckidSTREAMFORMAT; avimuxin->strf->cb = FIELD_OFFSET(BITMAPINFO, bmiColors[vih->bmiHeader.biClrUsed]); if(size > avimuxin->strf->cb) @@ -1467,7 +1465,7 @@ static void avi_mux_sink_disconnect(struct strmbase_sink *iface) if(cur == avimuxin->samples_head) avimuxin->samples_head = NULL; } - CoTaskMemFree(avimuxin->strf); + free(avimuxin->strf); avimuxin->strf = NULL; }
@@ -1786,7 +1784,7 @@ static HRESULT create_input_pin(AviMux *avimux)
swprintf(name, ARRAY_SIZE(name), L"Input %02u", avimux->input_pin_no + 1);
- if (!(object = heap_alloc_zero(sizeof(*object)))) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY;
strmbase_sink_init(&object->pin, &avimux->filter, name, &sink_ops, NULL); @@ -1800,7 +1798,7 @@ static HRESULT create_input_pin(AviMux *avimux) if (FAILED(hr)) { strmbase_sink_cleanup(&object->pin); - heap_free(object); + free(object); return hr; }
@@ -1810,7 +1808,7 @@ static HRESULT create_input_pin(AviMux *avimux) { IMemAllocator_Release(object->samples_allocator); strmbase_sink_cleanup(&object->pin); - heap_free(object); + free(object); return hr; }
@@ -1826,7 +1824,7 @@ HRESULT avi_mux_create(IUnknown *outer, IUnknown **out) AviMux *avimux; HRESULT hr;
- if (!(avimux = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AviMux)))) + if (!(avimux = calloc(1, sizeof(AviMux)))) return E_OUTOFMEMORY;
strmbase_filter_init(&avimux->filter, outer, &CLSID_AviDest, &filter_ops); @@ -1846,7 +1844,7 @@ HRESULT avi_mux_create(IUnknown *outer, IUnknown **out) if(FAILED(hr)) { strmbase_source_cleanup(&avimux->source); strmbase_filter_cleanup(&avimux->filter); - HeapFree(GetProcessHeap(), 0, avimux); + free(avimux); return hr; }
diff --git a/dlls/qcap/capturegraph.c b/dlls/qcap/capturegraph.c index b98a321cb3a..b1569bbc3a3 100644 --- a/dlls/qcap/capturegraph.c +++ b/dlls/qcap/capturegraph.c @@ -55,7 +55,7 @@ HRESULT capture_graph_create(IUnknown *outer, IUnknown **out) if (outer) return CLASS_E_NOAGGREGATION;
- if (!(object = CoTaskMemAlloc(sizeof(*object)))) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY;
object->ICaptureGraphBuilder2_iface.lpVtbl = &builder2_Vtbl; @@ -122,7 +122,7 @@ static ULONG WINAPI fnCaptureGraphBuilder2_Release(ICaptureGraphBuilder2 * iface DeleteCriticalSection(&This->csFilter); if (This->mygraph) IGraphBuilder_Release(This->mygraph); - CoTaskMemFree(This); + free(This); ObjectRefCount(FALSE); } return ref; diff --git a/dlls/qcap/filewriter.c b/dlls/qcap/filewriter.c index c67fe263d8d..6209287d379 100644 --- a/dlls/qcap/filewriter.c +++ b/dlls/qcap/filewriter.c @@ -161,10 +161,10 @@ static void file_writer_destroy(struct strmbase_filter *iface) { struct file_writer *filter = impl_from_strmbase_filter(iface);
- heap_free(filter->filename); + free(filter->filename); strmbase_sink_cleanup(&filter->sink); strmbase_filter_cleanup(&filter->filter); - heap_free(filter); + free(filter); }
static HRESULT file_writer_init_stream(struct strmbase_filter *iface) @@ -245,11 +245,10 @@ static HRESULT WINAPI filesinkfilter_SetFileName(IFileSinkFilter *iface, if (mt) FIXME("Ignoring media type %p.\n", mt);
- if (!(new_filename = heap_alloc((wcslen(filename) + 1) * sizeof(WCHAR)))) + if (!(new_filename = wcsdup(filename))) return E_OUTOFMEMORY; - wcscpy(new_filename, filename);
- heap_free(filter->filename); + free(filter->filename); filter->filename = new_filename; return S_OK; } @@ -317,7 +316,7 @@ HRESULT file_writer_create(IUnknown *outer, IUnknown **out) { struct file_writer *object;
- if (!(object = heap_alloc_zero(sizeof(*object)))) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY;
strmbase_filter_init(&object->filter, outer, &CLSID_FileWriter, &filter_ops); diff --git a/dlls/qcap/qcap_private.h b/dlls/qcap/qcap_private.h index 29853862d1e..27b716882d3 100644 --- a/dlls/qcap/qcap_private.h +++ b/dlls/qcap/qcap_private.h @@ -26,7 +26,6 @@ #define NONAMELESSUNION #include "dshow.h" #include "wine/debug.h" -#include "wine/heap.h" #include "wine/strmbase.h"
extern HINSTANCE qcap_instance DECLSPEC_HIDDEN; diff --git a/dlls/qcap/smartteefilter.c b/dlls/qcap/smartteefilter.c index 4e23e6ee467..ab32dce8e89 100644 --- a/dlls/qcap/smartteefilter.c +++ b/dlls/qcap/smartteefilter.c @@ -59,7 +59,7 @@ static void smart_tee_destroy(struct strmbase_filter *iface) strmbase_source_cleanup(&filter->capture); strmbase_source_cleanup(&filter->preview); strmbase_filter_cleanup(&filter->filter); - CoTaskMemFree(filter); + free(filter); }
static HRESULT smart_tee_wait_state(struct strmbase_filter *iface, DWORD timeout) @@ -319,9 +319,8 @@ HRESULT smart_tee_create(IUnknown *outer, IUnknown **out) SmartTeeFilter *object; HRESULT hr;
- if (!(object = CoTaskMemAlloc(sizeof(*object)))) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY; - memset(object, 0, sizeof(*object));
strmbase_filter_init(&object->filter, outer, &CLSID_SmartTee, &filter_ops); strmbase_sink_init(&object->sink, &object->filter, L"Input", &sink_ops, NULL); @@ -330,7 +329,7 @@ HRESULT smart_tee_create(IUnknown *outer, IUnknown **out) if (FAILED(hr)) { strmbase_filter_cleanup(&object->filter); - CoTaskMemFree(object); + free(object); return hr; }
diff --git a/dlls/qcap/vfwcapture.c b/dlls/qcap/vfwcapture.c index ae6a9a055d1..9d1934e8295 100644 --- a/dlls/qcap/vfwcapture.c +++ b/dlls/qcap/vfwcapture.c @@ -106,7 +106,7 @@ static void vfw_capture_destroy(struct strmbase_filter *iface) DeleteCriticalSection(&filter->state_cs); strmbase_source_cleanup(&filter->source); strmbase_filter_cleanup(&filter->filter); - CoTaskMemFree(filter); + free(filter); ObjectRefCount(FALSE); }
@@ -852,7 +852,7 @@ HRESULT vfw_capture_create(IUnknown *outer, IUnknown **out) if (!InitOnceExecuteOnce(&init_once, load_capture_funcs, NULL, NULL) || !capture_funcs) return E_FAIL;
- if (!(object = CoTaskMemAlloc(sizeof(*object)))) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY;
strmbase_filter_init(&object->filter, outer, &CLSID_VfwCapture, &filter_ops); @@ -862,7 +862,6 @@ HRESULT vfw_capture_create(IUnknown *outer, IUnknown **out) object->IAMVideoProcAmp_iface.lpVtbl = &IAMVideoProcAmp_VTable; object->IAMFilterMiscFlags_iface.lpVtbl = &IAMFilterMiscFlags_VTable; object->IPersistPropertyBag_iface.lpVtbl = &IPersistPropertyBag_VTable; - object->init = FALSE;
strmbase_source_init(&object->source, &object->filter, L"Output", &source_ops);