Commit Graph

304 Commits

Author SHA1 Message Date
Michael Stefaniuc 482879462a quartz: COM cleanup for the IGraphConfig iface. 2011-07-01 14:39:36 +02:00
Michael Stefaniuc 13626d06e6 quartz: COM cleanup for the IMediaEventSink iface. 2011-07-01 14:39:36 +02:00
Michael Stefaniuc e97b34b26e quartz: COM cleanup for the IMediaFilter iface. 2011-07-01 14:39:36 +02:00
Michael Stefaniuc eca149bb4b quartz: COM cleanup for the IMediaEventEx iface. 2011-07-01 14:39:36 +02:00
Michael Stefaniuc 6d929c71b6 quartz: COM cleanup for the IVideoWindow iface. 2011-07-01 14:39:36 +02:00
Michael Stefaniuc a37208ba96 quartz: COM cleanup for the IBasicVideo2 iface. 2011-07-01 14:39:35 +02:00
Michael Stefaniuc 8d52dffc6d quartz: COM cleanup for the IBasicAudio iface. 2011-07-01 14:39:35 +02:00
Michael Stefaniuc deb489c2d2 quartz: COM cleanup for the IMediaSeeking iface. 2011-07-01 14:39:35 +02:00
Michael Stefaniuc 6c3e62fdaf quartz: COM cleanup for the IMediaControl iface. 2011-07-01 14:39:35 +02:00
Michael Stefaniuc 2d589407b3 quartz: Pass the object instead of the iface to an internal helper. 2011-07-01 14:39:35 +02:00
Michael Stefaniuc f888eb9135 quartz: COM cleanup for the IFilterGraph2 iface. 2011-07-01 14:39:35 +02:00
Austin English 376bbd1ecc quartz: Remove extraneous parentheses (LLVM/Clang). 2011-04-13 14:13:55 +02:00
Maarten Lankhorst b353f32453 quartz: Handle seeking while running better. 2010-12-14 16:01:11 +01:00
Maarten Lankhorst 804a9d14c9 quartz: Remove default clock if the providing filter is removed from filtergraph. 2010-12-06 19:15:51 +01:00
Maarten Lankhorst 6e7aff2544 quartz: Add support for filtermapper3 to filtergraph. 2010-12-03 14:28:29 +01:00
Maarten Lankhorst 2b01660178 quartz: Handle selecting default sync source better. 2010-11-29 19:43:33 +01:00
Maarten Lankhorst 0a4adc1f10 quartz: Prevent circular connections in render case too. 2010-11-25 11:49:06 +01:00
Maarten Lankhorst 10c51a80f0 quartz: Reset stream time when paused after seeking. 2010-11-10 12:14:32 +01:00
Maarten Lankhorst 120dd66ed2 quartz: Actually use the start time in SendRun. 2010-11-08 13:30:26 +01:00
Maarten Lankhorst 4f8584ac27 quartz: Remove position from filtergraph. 2010-11-08 13:30:25 +01:00
Maarten Lankhorst 769b3b515f quartz: Fix run/pause/stop in filtergraph. 2010-11-05 17:15:36 +01:00
Maarten Lankhorst 14229c1176 quartz: Simplify all_renderers_seek.
Since IAMFilterMiscFlags is supported by all source/renderer filters, use that instead.
2010-11-05 17:15:36 +01:00
Maarten Lankhorst 7fda01e522 quartz: Change HeapRealloc call to CoTaskMemRealloc. 2010-11-05 17:15:35 +01:00
Michael Stefaniuc 63512e8e98 quartz: Avoid using the long type. 2010-05-20 13:47:44 +02:00
Maarten Lankhorst 5568f33db3 quartz: Forward IMediaFilter to IMediaControl. 2010-05-18 08:50:54 +02:00
Paul Chitescu e03b98ec68 quartz: Only wait in IMediaEvent::WaitForCompletion if the filter is running. 2009-12-24 12:15:40 +01:00
Alexandre Julliard a3fbb39299 quartz: Implemented a number of the MediaPosition methods. 2009-11-24 15:53:37 +01:00
Michael Stefaniuc 7ef5f44bb5 include: Change long to LONG in axextend.idl. 2009-03-12 13:09:54 +01:00
Michael Stefaniuc a3269bdc40 quartz: Change long to LONG in control.idl. 2009-03-11 13:03:31 +01:00
Michael Stefaniuc cc7fc4abef quartz: Remove superfluous pointer casts. 2009-01-29 14:06:01 +01:00
Lei Zhang 7e1b714f74 quartz: Enumerate all the pins on filter and check directions when rendering. 2008-12-16 12:52:32 +01:00
Christian Costa 14485c365b quartz: Avoid leaking penummt and mt on error. 2008-12-01 14:05:49 +01:00
Francois Gouget 9517637eb4 quartz: Remove WINAPI on static functions where not needed. 2008-11-26 12:10:48 +01:00
Maarten Lankhorst 8699661e96 quartz: Fix FilterGraph2_Connect to be thread-safe and not recurse infinitely. 2008-11-17 13:50:19 +01:00
Maarten Lankhorst f57896484c Revert "quartz: Reaching a renderer in the filtergraph is not an error."
This is plain wrong, input pin and output pin are supposed to be 
connected to each other, not the input pin being connected to a renderer 
pin and NOT reaching output pin
2008-11-17 13:11:42 +01:00
Lei Zhang 62a0bd65d2 quartz: Reaching a renderer in the filtergraph is not an error. 2008-11-14 11:02:15 +01:00
David Adam 6ed258e220 quartz: Check for NULL condition in FilterGraph2_Disconnect. 2008-11-12 11:49:12 +01:00
Andrew Talbot a19ff5f07b quartz: Sign-compare warnings fix. 2008-11-05 10:56:54 +01:00
Michael Stefaniuc 56c6f7670b quartz: Use the right FAILED/SUCCEEDED macro instead of negating the opposite. 2008-10-08 13:42:06 +02:00
Rob Shearman 2fb89a4e36 quartz: Fix placement of WINAPI attribute in fnFoundSeek typedef.
MSVC requires that calling conventions appear inside the brackets.
2008-10-01 11:44:07 -05:00
Maarten Lankhorst f0f00d1625 quartz: Implement IMediaPosition::put_CurrentPosition. 2008-09-22 13:46:04 +02:00
Alexander Dorofeyev bca80e1a64 quartz: Fix interface leak in FilterGraph2_Render. 2008-07-18 11:15:30 +02:00
Alexander Dorofeyev 1656f6b7cc quartz: Add missing VariantClear after GetFilterInfo calls. 2008-07-18 11:15:24 +02:00
Alexander Dorofeyev 1cd83afda3 quartz: Fix variant handling in GetFilterInfo.
Removes unnecessary and unsafe type assignment, adds a missing VariantClear.
2008-07-18 11:15:17 +02:00
Alexander Dorofeyev 6645999337 quartz: Fix interface leak in FilterGraph2_RemoveFilter. 2008-07-18 11:15:01 +02:00
Alexander Dorofeyev 0bea470dfc quartz: Aggregate filtermapper in filtergraph. 2008-07-18 11:13:14 +02:00
Maarten Lankhorst 86393897a8 quartz: Make filtergraph quieter. 2008-07-10 14:38:16 +02:00
Francois Gouget dbaec0a101 Assorted spelling fixes. 2008-07-10 13:40:15 +02:00
Alexander Dorofeyev 27c0cddbab quartz: Do not try renderers first. Use a single enumeration pass. 2008-07-09 10:43:27 +02:00
Maarten Lankhorst 6e4288ee70 quartz: Fix tiny bug in IGraphBuilder_Render. 2008-07-07 12:11:23 +02:00
Maarten Lankhorst d54c53a4b6 quartz: Fix Render and RenderFile.
RenderFile should add a source filter and call Render on each output
pin, while Render() should try to connect, first directly to any
existing renderers, and then using intermediates. It uses recursion
since this is the only possible way to implement Render sanely.
2008-06-27 11:13:10 +02:00
Maarten Lankhorst 0d1eea691c quartz: Make FilterGraph_Connect and ConnectDirect behave better.
Does some security checks that it won't connect a filter to itself,
and also cleans up after a failed connection attempt.
2008-06-27 11:12:03 +02:00
Maarten Lankhorst 46f4c4b4d8 quartz: Make removing filters work slightly better. 2008-06-27 11:10:44 +02:00
Maarten Lankhorst 0bdc8bc5c1 quartz: Implement GraphConfig_Reconfigure. 2008-06-24 11:47:04 +02:00
Maarten Lankhorst 00beed3d9e quartz: Implement IBasicVideo2 for the filtergraph. 2008-06-21 11:16:54 +02:00
Maarten Lankhorst 29b6dbab80 quartz: Implement MediaControl_GetState.
This allows applications to wait for state transitions to be really
complete. Fixes some xvid crashes.
2008-06-21 11:16:36 +02:00
Maarten Lankhorst aaee8a1b0e quartz: Try to render any existing renderers before creating a new one. 2008-06-21 11:16:32 +02:00
Lei Zhang a4d0d4fe36 quartz: Check input in MediaControl_GetState. 2008-05-13 10:57:45 +02:00
Maarten Lankhorst 810a933f68 quartz: Change longlong printfs. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst 1281b74956 quartz: Update start_time if the current position is changed. 2008-04-15 14:33:45 +02:00
Maarten Lankhorst 43f9fff0a0 quartz: Implement stop position in the filtergraph. 2008-04-10 09:48:13 +02:00
Maarten Lankhorst 0117468754 quartz: Try creating the file reader from the filter source first before falling back to the generic async file reader. 2008-04-09 11:42:37 +02:00
Maarten Lankhorst ee792916e0 quartz: Reset EcCompleteCount before starting filters.
This sends EC_COMPLETE notifications to the application after a graph has
finished running for the second time.
2008-04-07 11:35:29 +02:00
Maarten Lankhorst 3d3dcc4e07 quartz: Fix past mistake to release lock during seeking and changing state. 2008-04-07 11:35:21 +02:00
Maarten Lankhorst cfeca053b8 quartz: Fix memory leak found by valgrind. 2008-04-03 11:29:47 +02:00
Maarten Lankhorst 855e3a08b5 quartz: Implement filtergraph mediaseeking setposition. 2008-04-02 11:15:43 +02:00
Maarten Lankhorst 7cb1324ae3 quartz: Don't hold lock when changing state in filtergraph. 2008-04-02 11:15:29 +02:00
Maarten Lankhorst c56389ea3c quartz: Implement graph MediaSeeking GetPositions. 2008-04-01 23:38:22 +02:00
Maarten Lankhorst 39623a403a quartz: Add GetCurrentPosition using the reference clock. 2008-03-28 09:51:00 +01:00
Maarten Lankhorst c53a803ab7 quartz: Fix checking for duration. 2008-03-20 14:27:34 +01:00
Maarten Lankhorst d38b8502a6 quartz: Pass the reference time + small delay on on begin of playback. 2008-03-20 14:27:34 +01:00
Maarten Lankhorst 796bb92333 quartz: Move IMediaSeeking from the parser pin to the parser filter.
This interface really shouldn't be in a pin, but rather in the
implementation of the filter, since any seeking is done on the entire
filtergraph, so implementing it in the filter makes more sense.
2008-03-19 11:24:46 +01:00
Maarten Lankhorst 0f8b16f117 quartz: Implement a few MediaSeeking functions. 2008-03-15 11:21:22 +01:00
Maarten Lankhorst 18f42a6eb7 quartz: Change some more stubs from traces to fixmes. 2008-03-15 11:21:05 +01:00
Maarten Lankhorst b662a6a556 quartz: Add initial support for time formats in IMediaSeeking.
Only support the SYSTEM_MEDIA_TIME for now.
2008-03-15 11:20:59 +01:00
Maarten Lankhorst ffe48d4013 quartz: Make MediaSeeking stubs fixmes. 2008-03-15 11:20:50 +01:00
Maarten Lankhorst b1f9acc688 quartz: Set a default sync source on the filtergraph.
Use the fallback system IReferenceClock, unless the app comes up with
its own clock.
2008-03-15 11:20:18 +01:00
Maarten Lankhorst 14ba79ec62 quartz: Fix IFilterGraph RemoveFilter to stop the filter before removing it.
Also checks for VFW_E_NOT_STOPPED that is allowed to cause a
disconnection to fail.
2008-03-15 10:58:38 +01:00
Maarten Lankhorst d47bdbfbf1 quartz: Destroy the filtergraph better in releasing.
RemoveFilter is better at removing a filter from a filtergraph then
some method there.
2008-03-15 10:58:38 +01:00
Maarten Lankhorst 07b12032d2 quartz: Don't add MERIT_DO_NOT_USE filters automatically to create a connection.
NullRenderer might accidentally be rendered otherwise.
2008-03-14 12:54:27 +01:00
Lei Zhang 0831be5adc quartz: Validate input for FilterGraph2_AddFilter. 2008-03-06 13:19:34 +01:00
Rob Shearman da93bc702f quartz: Fix memory leak in FilterGraphInner_Release. 2007-12-26 14:02:10 +01:00
Lei Zhang 99a193ce7e quartz: Make filtergraph aggregatable. 2007-12-21 13:58:33 +01:00
Lei Zhang f5cd582bae quartz: Fix typo in GraphConfig_AddRef. 2007-12-14 12:25:26 +01:00
Lei Zhang cff265950a quartz: Add IFilterGraph2 interface and stubs. 2007-12-11 12:09:38 +01:00
Lei Zhang 2d1a6016c9 quartz: Validate input for IFilterGraph_FindFilterByName. 2007-12-07 17:04:34 +01:00
Lei Zhang 31aab42934 quartz: Fix return value in IFilterGraph_FindFilterByName. 2007-12-07 17:04:26 +01:00
Andrew Talbot 1f3133d214 quartz: Constify some variables. 2007-08-08 15:32:00 +02:00
Michael Stefaniuc f10e6d7e37 quartz: Remove superfluous casts of void pointers to other pointer types. 2007-06-27 12:53:20 +02:00
Marcus Meissner d2bc96bf8a quartz: ppinsplitter might be used uninitialized (Coverity). 2007-05-23 13:14:51 +02:00
Chris Robinson f352d9de98 quartz: Send a notification when the filter graph clock changes. 2007-04-06 12:31:07 +02:00
Chris Robinson d51098ef11 quartz: Avoid releasing NULL objects. 2007-04-06 12:31:07 +02:00
Chris Robinson f9527e9ce8 quartz: Implement Get/SetSyncSource for the FilterGraph's IMediaFilter interface. 2007-04-04 21:26:04 +02:00
Chris Robinson 60f325d967 quartz: Add filters using their names. 2007-03-30 10:55:20 +02:00
Michael Stefaniuc 0674ff43b2 quartz: Fix typo that produced an empty if-statement. 2007-03-20 13:00:30 +01:00
Chris Robinson 6eefb9d3dd quartz: Release objects when they're no longer needed. 2007-03-19 12:24:09 +01:00
Chris Robinson 54f4a4a779 quartz: Disconnect pins when their filter is removed. 2007-03-19 12:24:02 +01:00
Jan Zerebecki b5619e8628 quartz: Add DebugInfo to critical sections.
Also add missing DeleteCriticalSection.
2007-03-12 13:39:49 +01:00
Chris Robinson 045270605c quartz: Use proper alloc/free functions for COM objects. 2007-03-08 13:53:54 +01:00
Chris Robinson 5a19e3b7bc quartz: Use the right vtable offset for the IMediaFilter functions. 2007-03-05 12:14:15 +01:00
Chris Robinson 3f089b4424 quartz: Use the proper CLSID when creating the IFilterMapper2 interface. 2007-03-05 12:08:09 +01:00
Chris Robinson ac647156d8 quartz: Implement IUnknown methods for IMediaPosition. 2007-02-21 10:53:59 +01:00
Chris Robinson 5a8ee37191 quartz: Don't release filters when they connect. 2007-02-21 10:53:54 +01:00
Chris Robinson 4284c504ab quartz: Initialize a pointer to NULL for the case of no enumerated filters. 2007-02-20 12:02:15 +01:00
Chris Robinson 7d597264dc quartz: Add IMediaPosition interface and stubs. 2007-02-20 12:01:54 +01:00
Chris Robinson 31407d2659 quartz: Better handle error conditions when connections fail. 2007-02-20 12:01:33 +01:00
Chris Robinson c5ae1fc7d8 quartz: Return proper error codes from GraphBuilder_RenderFile. 2007-02-19 12:42:53 +01:00
Chris Robinson 763fc7cf3a quartz: Make sure the splitter has output plugins before trying to render them. 2007-02-19 12:42:46 +01:00
Chris Robinson 2250c2898f quartz: Loop through the rest of the possible filters even when a connection fails. 2007-02-14 12:30:13 +01:00
Andrew Talbot 35c0886939 quartz: Cast-qual warning fix. 2006-11-10 11:36:57 +01:00
Francois Gouget 9fe4673347 Don't include windows.h & co in the Wine sources.
Remove uneeded COM_NO_WINDOWS_H defines.
2006-10-24 17:47:09 +02:00
Hans Leidekker cfbb859f59 quartz: Win64 printf format warning fixes. 2006-10-13 12:08:41 +02:00
Stefan Leichter 19d275f775 quartz: Print 64bit integers with wine_dbgstr_longlong. 2006-08-18 20:56:20 +02:00
Paul Vriens cc6bb93baa quartz: Fixed typo (Coverity). 2006-06-29 14:39:27 +02:00
Mike McCormack d20c6cf8ca Fixed more boolean comparisons against TRUE. 2006-05-24 14:38:20 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Christian Costa bfbba1a6fd Fix function names. 2005-09-25 15:17:30 +00:00
Alexandre Julliard c6b005ac69 Fixed some more traces to use the right printf format and avoid
typecasts.
2005-09-12 14:12:46 +00:00
Mike McCormack dc1c62a592 Fix gcc 4.0 warnings. 2005-09-07 11:31:17 +00:00
Christian Costa df75a4f028 Forward calls of IBasic* and IVideoWindow interfaces of the
filtergraph to the right filter.
2005-09-02 11:20:09 +00:00
Christian Costa 6301fec0ef Properly allocate/release memory when adding filters to the filtergraph.
When connecting pin, discard filter which is the same as the upstream
one.
Remove wrong extra IBaseFilter_Release.
Improve traces by showing filters owing pins we want to connect or
render.
Properly initialize output pin of transform filter.
2005-08-22 09:21:24 +00:00
Christian Costa 7f3c43b5c9 Add stubbed IGraphConfig interface to the filtergraph. 2005-08-17 09:52:15 +00:00
Mike McCormack 0791d06215 Interlocked LONG* gcc warning fixes. 2005-07-12 19:21:36 +00:00
Dmitry Timoshkov eba47f1dfe Make remaining OLE interface vtables const. 2005-06-06 19:50:35 +00:00
Maarten Lankhorst 05d658d012 Added reconnect function for filtergraph. 2005-05-18 13:25:49 +00:00
Maarten Lankhorst 8efc1f3612 Fixed a dozen of reference (and some memory) leaks.
Implemented filtergraph_pause/stop.
2005-05-06 14:34:44 +00:00
Christian Costa 7180775af6 Forward CLSID_FilterGraphNoThread to CLSID_FilterGraph. 2005-05-05 09:50:35 +00:00
Jakob Eriksson 9ed61de9a2 Get rid of HeapAlloc casts. 2005-03-24 21:01:35 +00:00
Christian Costa 7dea79c487 Handle End Of Stream notifications.
Some AVI Splitter fixes.
2005-03-02 10:12:12 +00:00
Christian Costa b3f064ccc7 Fixed error handling in Graphbuilder_RenderFile.
Improved traces.
2005-01-09 18:24:41 +00:00
Paul Vriens c6559a104c - Use Interlocked* functions in AddRef and Release.
- Store the result of the Interlocked functions and use only this.
2005-01-06 19:36:47 +00:00
Christian Costa 45f111a276 Implemented IMediaControl_Run that explores the graph, counts
renderers and starts filters.
Better implementation of IBaseFilter_Run for AVI SPlitter and AVI
Decompressor.
Use the standard memory allocator when an output pin does not provide
any allocator.
Set allocator properties for AVI Decompressor output pin and update
the buffers size at connection time.
2005-01-03 20:23:14 +00:00
Christian Costa 9b8d5c625f Initialize the COM libraries for the newly created worker thread in
the AVI splitter.
Fixed some returned error codes.
Show refcount in the AddRef/Release traces in filter.
Added 24 bits source in the video renderer.
2004-12-27 17:15:58 +00:00
Francois Gouget 6fb1a20020 Assorted spelling fixes. 2004-12-20 19:27:06 +00:00
Christian Costa 1d90e4312f Many fixes to the system clock implementation.
Ensure there is a clock before doing any AddRef or Release in the AVI
splitter.
Improved tests a bit.
Misc fixes and traces clean-up.
2004-12-16 14:25:15 +00:00
Christian Costa 8d01911493 Better handling of errors in RenderFile. 2004-12-06 11:47:13 +00:00
Christian Costa 8db6b0a514 Implemented IGraphBuilder methods: Connect, Render, RenderFile &
AddSourceFilter.
Fixed filter name generation in IGraphBuilder::AddFilter.
2004-11-19 18:17:27 +00:00
Joris Huizer 823c418d8e Added IClassFactory->CreateInstance aggregation checks. 2004-10-18 21:21:19 +00:00
Francois Gouget 486d020c1b Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.
2004-10-07 03:06:48 +00:00
Alexandre Julliard 5ee74004a5 Converted control.h to idl. 2004-10-05 02:18:08 +00:00
Alexandre Julliard f714b39762 Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
macro.
2004-08-23 19:39:48 +00:00
Alexandre Julliard 48c4bb3c31 Get rid of the non-standard ICOM_VTABLE macro. 2004-08-12 23:00:51 +00:00
Christian Costa 385d89a770 Enable querying of IID_FilterGraph interface from filtergraph manager
(spotted by Robert Reif).
2004-04-30 04:14:19 +00:00
Michael Stefaniuc ca97f7fd26 Fix cut'n'paste error: leave the CriticalSection not enter it again
(found by smatch).
2004-04-05 20:16:35 +00:00
Christian Costa aca2cfc319 Implemented IMediaEventSink and IMediaEventEx interfaces. 2004-03-05 20:42:40 +00:00
Christian Costa b0c9f6a34d Implemented IFilterGraphImpl_EnumFilters and IEnumFilters interface.
Renamed constructor of IEnumRegFilters interface.
Small fix in IFilterMapper_EnumMatchingFilters.
2004-03-04 06:07:30 +00:00
Christian Costa 203b526a8b Handle null and duplicate name when adding a filter to the
filtergraph.
2004-03-03 02:18:13 +00:00
Robert Shearman 3f854103ad - Fix IGraphBuilder::ConnectDirect.
- Register IFilterMapper and IFilterMapper2 in DllRegisterServer.
2003-12-30 19:13:05 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Robert Shearman cae7755a70 - Bugfix when adding filters to graph due to not initializing
variables on creation of graph.
- Remove clue of where I copied one of the copyright messages from.
- Add implementation of input and output pins which will be used by a
  lot of filters in Quartz.
2003-08-06 22:04:45 +00:00
Robert Shearman bd1173ca27 - Improve QueryInterface FIXME message.
- Add stubs for IMediaFilter interface in IGraphBuilder.
- Implement some simple methods.
2003-07-03 18:09:28 +00:00
Robert Shearman c71301a308 Implemented IFilterMapper2. 2003-07-01 04:29:48 +00:00
Robert Shearman 7c8b85a222 - Added DShow headers.
- Added needed const's in FilterGraph implementation.
2003-06-30 20:24:52 +00:00
Lionel Ulmer 1fa9624682 Stubbed some interfaces for the FilterGraph CLSID. 2003-06-13 18:06:44 +00:00