Commit Graph

304 Commits

Author SHA1 Message Date
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