Commit Graph

652 Commits

Author SHA1 Message Date
Maarten Lankhorst cf1d2f5e42 quartz: Fix memory and sample leaks. 2008-07-14 12:21:26 +02:00
Maarten Lankhorst 36418d8ad1 quartz: Fix incorrect use of mtCurrent in transform filter. 2008-07-14 12:21:10 +02:00
Maarten Lankhorst 61ba32c036 includes: Add video mixing renderer header. 2008-07-11 14:50:44 +02:00
Michael Stefaniuc 5c0ff73db2 quartz: Add missing LeaveCriticalSection on error path (Smatch). 2008-07-11 14:07:25 +02:00
Maarten Lankhorst 2865c727de quartz: Make the file source rotate around the 'first' sample, to prevent starvation of a single stream.
This prevents the file source from starving a single thread off.
2008-07-11 13:58:24 +02:00
Maarten Lankhorst 484fdcf7e4 quartz: End the flush downstream first before restarting playback in pullpin. 2008-07-11 13:58:18 +02:00
Maarten Lankhorst e47bc7725e quartz: Call run before pausing in transform filter. 2008-07-10 14:42:38 +02:00
Maarten Lankhorst 86393897a8 quartz: Make filtergraph quieter. 2008-07-10 14:38:16 +02:00
Maarten Lankhorst fe9840f213 quartz: Make parser start even if some of the pins aren't connected. 2008-07-10 14:38:09 +02:00
Francois Gouget dbaec0a101 Assorted spelling fixes. 2008-07-10 13:40:15 +02:00
Maarten Lankhorst adcf93aeaf quartz: Fix deadlocks in dsound renderer. 2008-07-10 12:18:13 +02:00
Michael Stefaniuc 310b58994c quartz: Compare a file handle to INVALID_HANDLE_VALUE and not NULL. 2008-07-10 12:17:59 +02:00
Maarten Lankhorst 43d0acd26a quartz: Fix end of stream handling.
Flushing blocks any end of stream that may occur.
2008-07-10 12:17:20 +02:00
Maarten Lankhorst 6748f073ed quartz: Always set current position again. 2008-07-10 12:17:10 +02:00
Maarten Lankhorst 3adf811645 quartz: Add tests for avi splitter. 2008-07-09 10:59:31 +02:00
Maarten Lankhorst 19360d41a0 quartz: Add rewrite of avi splitter. 2008-07-09 10:59:27 +02:00
Maarten Lankhorst 992fb02c73 quartz: Fix deadlock with transform filter. 2008-07-09 10:58:27 +02:00
Alexander Dorofeyev 2364514431 quartz/tests: Add test for filter priority in IFilterGraph2_Render. 2008-07-09 10:43:33 +02:00
Alexander Dorofeyev 27c0cddbab quartz: Do not try renderers first. Use a single enumeration pass. 2008-07-09 10:43:27 +02:00
Alexandre Julliard 79c64acc7b tests: Don't depend on the static uuid libraries in the tests.
This avoids trouble with the broken MingW libraries when
cross-compiling the tests.
2008-07-08 17:51:45 +02:00
Andrew Talbot f0d7a2910e quartz: Remove unneeded address-of operators from function names. 2008-07-07 12:31:47 +02:00
Maarten Lankhorst 53782ca47a quartz: Fix parser/pullpin to only care about the state transition stopped<->playing. 2008-07-07 12:11:23 +02:00
Maarten Lankhorst e58855e0e9 quartz: Only call begin process functions in transform filter when stopped.
Fixes some graphical glitches that may occur otherwise.
2008-07-07 12:11:23 +02:00
Maarten Lankhorst 11e2b1ab2b quartz: Make sure transform filter commits allocator. 2008-07-07 12:11:23 +02:00
Maarten Lankhorst 6e4288ee70 quartz: Fix tiny bug in IGraphBuilder_Render. 2008-07-07 12:11:23 +02:00
Maarten Lankhorst 9985f2efc9 quartz: Implement state transitions in video renderer. 2008-07-04 19:50:52 +02:00
Maarten Lankhorst b6b67f698a quartz: Implement state transitions in directsound renderer, and block on pause. 2008-07-04 19:50:04 +02:00
Maarten Lankhorst ee317b19b2 quartz: Set filesource initial state to stopped.
Fixes a bug valgrind found.
2008-07-04 19:35:07 +02:00
Maarten Lankhorst 8b65914cf9 quartz: Make CLSID_AudioRender an alias for CLSID_DSoundRender. 2008-07-04 19:35:00 +02:00
Maarten Lankhorst 28c7b230ed quartz: Fix return value for video renderer. 2008-07-03 11:50:52 +02:00
Maarten Lankhorst e5767b1c02 quartz: Fix return values in directsound renderer. 2008-07-03 11:50:52 +02:00
Paul Vriens 0435574aed quartz/tests: Make tests run on everything lower then Vista. 2008-07-03 11:50:51 +02:00
Alexander Dorofeyev b312d42059 quartz: Fix memory leak and behavior on errors in FilterMapper_EnumMatchingFilters. 2008-07-02 12:23:43 +02:00
Alexander Dorofeyev bbd22ae06c quartz: Fix memory leak in FilterMapper_RegisterFilter. 2008-07-02 12:23:37 +02:00
Alexander Dorofeyev c206f91030 quartz: Fix memleak in FilterMapper2_RegisterFilter. 2008-07-02 12:23:25 +02:00
Alexander Dorofeyev d3e67c83a0 quartz: Fix memory leaks in FM2_DeleteRegFilter. 2008-07-02 12:23:19 +02:00
Alexander Dorofeyev 898152c024 quartz: Fix memory leaks in IEnumRegFiltersImpl_Release. 2008-07-02 12:23:14 +02:00
Alexander Dorofeyev 02943d96b4 quartz: Fix interface leak in EnumMonikerImpl_Release. 2008-07-02 12:23:04 +02:00
Alexander Dorofeyev 9778faee0b quartz: Improve variant handling in FilterMapper_EnumMatchingFilters.
Adds VariantClear and removes unnecessary variant type assignment that may cause 
heap corruption.
2008-07-01 13:45:38 +02:00
Alexander Dorofeyev bff9f1114a quartz/tests: Add test for IFilterMapper_RegisterFilter. 2008-07-01 13:45:38 +02:00
Alexander Dorofeyev 10b593b2e7 quartz: Fix string buffer overflow. 2008-07-01 13:45:38 +02:00
Alexander Dorofeyev cd5fa7dedb quartz: Improve removal of registry data in Filtermapper unregister methods. 2008-07-01 13:45:38 +02:00
Alexander Dorofeyev f9e2914ed6 quartz: Fix registry key creation. 2008-07-01 13:45:38 +02:00
Alexander Dorofeyev d6df899603 quartz: Fix calculating wide string size. 2008-07-01 13:45:38 +02:00
Alexander Dorofeyev d19ad8f072 quartz/tests: Add test for EnumMatchingFilters. 2008-07-01 13:45:38 +02:00
Alexander Dorofeyev dcc9032ed0 Revert "quartz: Only enumerate renderers if bRender is set in filtermapper.".
This reverts commit b157969d49.
2008-07-01 13:45:38 +02:00
Alexandre Julliard aa68258b7a Fix a few %ll printf formats. 2008-06-30 12:50:07 +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 3bda54bb04 quartz: Downgrade a fixme to a warn in dsoundrender. 2008-06-26 12:44:20 +02:00
Alexander Dorofeyev 1aff73455d quartz: Prevent heap corruption if IPropertyBag_Read fails. 2008-06-25 20:21:41 +02:00
Alexander Dorofeyev 2d8f7268ab quartz: Do not ignore current position in IEnumRegFiltersImpl_Next. 2008-06-25 20:21:30 +02:00
Alexander Dorofeyev c782cdad96 quartz: Fix accessing variant string. 2008-06-25 20:21:26 +02:00
Maarten Lankhorst 8bedda7e1f quartz: Make the memory allocator emit more warnings and fix race condition. 2008-06-25 10:41:58 +02:00
Maarten Lankhorst 6aabf5d39e quartz: Create thread after connection is made. 2008-06-25 10:41:52 +02:00
Maarten Lankhorst 33294331d2 quartz: Remove dead code from DSoundRender. 2008-06-25 10:41:47 +02:00
Maarten Lankhorst cdb66444ed quartz: Handle case where ReceiveConnection is called on an already connected pin. 2008-06-25 10:39:47 +02:00
Maarten Lankhorst e8a023f9f8 quartz: Clear pin value if not connected. 2008-06-24 11:47:33 +02:00
Maarten Lankhorst 9009e68c5b quartz: Add support for VideoInfoHeader2 to AVI Decompressor. 2008-06-24 11:47:29 +02:00
Maarten Lankhorst b157969d49 quartz: Only enumerate renderers if bRender is set in filtermapper. 2008-06-24 11:47:24 +02:00
Maarten Lankhorst d283bcdb62 quartz: DSoundRender shouldn't delete buffer when already connected. 2008-06-24 11:47:19 +02:00
Maarten Lankhorst 3d43a629d0 quartz: Have thread safety in memallocator. 2008-06-24 11:47:15 +02:00
Maarten Lankhorst dae09d000c quartz: Implement VideoRenderer_GetCurrentImage. 2008-06-24 11:47:10 +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 2eb66373f5 quartz: Implement IMediaSeeking in the video renderer. 2008-06-21 11:16:45 +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
Maarten Lankhorst 365bbe8343 quartz: Expose some methods so that a custom allocator can be created. 2008-06-21 11:15:27 +02:00
Maarten Lankhorst 3a9040c1f2 quartz: Only query for event interface when there is a filtergraph.
Prevents a null pointer dereference.
2008-06-21 11:15:07 +02:00
Maarten Lankhorst e8705402a4 quartz: Add the ability to force a pin to use a certain renderer. 2008-06-21 11:14:58 +02:00
Maarten Lankhorst fc3377d08b quartz: Forward some messages from IMediaSeekingPassThru. 2008-06-19 12:34:55 +02:00
Maarten Lankhorst 9473b750bf quartz: Set data length in avi decompressor. 2008-06-19 11:42:14 +02:00
Maarten Lankhorst 40c0566879 quartz: Improve the directsound renderer a bit. 2008-06-19 11:42:08 +02:00
Maarten Lankhorst 5026c25e05 quartz: Initialize some uninitialized variables in the video renderer. 2008-05-22 11:46:25 +02:00
Maarten Lankhorst c4e32aad01 quartz: Do timekeeping in the avi decoder.
Fixes the timestamps generated.
2008-05-22 11:46:19 +02:00
Maarten Lankhorst 6d7518685e quartz: Don't free memory twice in null renderer.
_Release already frees it.
2008-05-22 11:46:05 +02:00
Paul Vriens 64444ebe94 janitorial: Close COM after tests. 2008-05-19 23:10:01 +02:00
Maarten Lankhorst 98f0b5f479 quartz: Reset time when rejecting sample in the mpeg splitter. 2008-05-13 11:21:12 +02:00
Maarten Lankhorst 7d6e28c3bb quartz: Silence a fixme. 2008-05-13 11:21:05 +02:00
Lei Zhang a4d0d4fe36 quartz: Check input in MediaControl_GetState. 2008-05-13 10:57:45 +02:00
Maarten Lankhorst c83a63d4b6 quartz: Don't return a pin in filesource when there is none.
Based on a patch by Olivier Samyn.
2008-05-12 11:42:43 +02:00
Francois Gouget 633ee950a1 Assorted spelling fixes. 2008-05-07 12:07:11 +02:00
Francois Gouget 42a61d7ed7 Assorted spelling fixes. 2008-05-06 16:10:20 +02:00
Alexandre Julliard aac5fa3469 Revert "quartz: Clean up pullpin code."
This reverts commit 3066116f76.
2008-05-05 19:46:15 +02:00
Maarten Lankhorst 753ac6f015 quartz: Silence a fixme that isn't. 2008-05-01 12:35:30 +02:00
Maarten Lankhorst 8099a62469 quartz: Get rid of the sample holding code in the wave parser. 2008-05-01 12:35:30 +02:00
Maarten Lankhorst 0f73bbad8c quartz: Get rid of the sample holding code in the mpeg splitter.
Instead just revert the position slightly, this is a lot easier to maintain.
2008-05-01 12:35:30 +02:00
Maarten Lankhorst 3066116f76 quartz: Clean up pullpin code. 2008-05-01 12:35:30 +02:00
Maarten Lankhorst c4cdfdac35 quartz: More filesource fixes.
After a flush call there should be no more samples in the buffer.
2008-05-01 12:35:30 +02:00
Maarten Lankhorst 4afc2ae951 Revert "quartz: Handle failures better in acmwrapper.".
This reverts commit 1ba8ece76e.

Code for holding sample doesn't make sense and shouldn't be there
because it should really be handled by keeping track of the last
successful position of a frame sent and aborting the whole processing
as soon as rejection occurs.
2008-05-01 12:35:30 +02:00
Alexandre Julliard dad21bbcbf makefiles: List the static libraries as normal imports instead of extra libs. 2008-04-30 14:23:55 +02:00
Maarten Lankhorst 4e761d2613 quartz: Some state changes fixes. 2008-04-29 12:45:53 +02:00
Maarten Lankhorst 1ba8ece76e quartz: Handle failures better in acmwrapper. 2008-04-29 12:45:38 +02:00
Maarten Lankhorst 37847b0d9b quartz: Keep track of the time in the video renderer. 2008-04-29 12:45:31 +02:00
Maarten Lankhorst 1fad872961 quartz: Fix bug in memallocator with test. 2008-04-29 12:45:17 +02:00
Maarten Lankhorst 10708b405c quartz: Fix acmwrapper time regression. 2008-04-28 14:21:56 +02:00
Maarten Lankhorst 512ee927cb quartz: Add a function that can be called when stopping processing data. 2008-04-28 14:21:53 +02:00
Maarten Lankhorst ec87de35af quartz: Make dwSamplesProcessed a longlong. 2008-04-28 14:21:41 +02:00
Maarten Lankhorst 12a0fd3d8b quartz: Optimize the file source to do its job better. 2008-04-28 14:21:35 +02:00
Maarten Lankhorst 7934951343 quartz: Make the EnumPins interface dynamic.
Take a reference to the ibasefilter and request it for the pins and a
cookie. This seems to be the easiest way to ensure correctness.
2008-04-28 14:21:23 +02:00
Maarten Lankhorst b7e20bfdd1 quartz: Fix time discontinuities in the acm wrapper. 2008-04-28 14:21:00 +02:00
Maarten Lankhorst 9e143cdb63 quartz: NotifyAllocator does not like a null argument. 2008-04-28 14:20:53 +02:00
Maarten Lankhorst 1f136a57f7 quartz: Add a vtable argument to Parser_Create that individual filters can override. 2008-04-28 14:20:44 +02:00
Andrew Talbot 523552fcc3 quartz: Remove unused variables. 2008-04-24 11:49:56 +02:00
Maarten Lankhorst e0fe0ef01b quartz: Make the file source support multiple samples by preallocating enough handles. 2008-04-23 13:04:36 +02:00
Maarten Lankhorst 3a39805ed8 quartz: Make wave parser and mpeg splitter zero copy by getting rid of the seperate allocator for the output pin. 2008-04-23 13:03:50 +02:00
Maarten Lankhorst ec124be823 quartz: Add some sanity checks to file splitter. 2008-04-23 13:02:53 +02:00
Maarten Lankhorst 4abbf915d3 quartz: Copy discontinuity status in acmwrapper. 2008-04-23 13:02:48 +02:00
Maarten Lankhorst 2f736c4a5a quartz: Fix inverted logic in memallocator. 2008-04-23 13:02:42 +02:00
Maarten Lankhorst 1e9dbcc512 quartz: Fix error message names in tests. 2008-04-23 13:02:36 +02:00
Maarten Lankhorst a022467690 quartz: Optimize the processing thread to fetch one sample while processing another. 2008-04-23 13:02:28 +02:00
Austin English aab8fae59a Spelling fixes. 2008-04-21 14:25:05 +02:00
Maarten Lankhorst f9c2d8e2f4 quartz: Add some more tests and fix wine to pass them. 2008-04-21 14:05:38 +02:00
Maarten Lankhorst 810a933f68 quartz: Change longlong printfs. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst c1a4acde01 quartz: Add more seek entries and fix a time continuity bug. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst 9d9bf6f158 quartz: Only drop Preroll samples after obtaining its time. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst d7fbc7ef8c quartz: Drop preroll frames in directsound renderer too. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst fb2c975a8f quartz: No longer drop packets on discontinuities. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst 0458c08b95 quartz: Set media time in the file source. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst 172347341a quartz: Make acmwrapper respect preroll samples. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst d16639d1fa quartz: Flux AsyncReader in PullPin_BeginFlush. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst 33b2f69c9f quartz: Fix sample leak in file source on failure path. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst 119d7caf79 quartz: Fix theoretical memory leak. 2008-04-21 14:05:37 +02:00
Maarten Lankhorst 458b09a84d quartz: Make the video renderer drop preroll samples. 2008-04-21 14:05:37 +02:00
Alexandre Julliard df75bde180 quartz: Avoid sizeof in traces. 2008-04-17 20:17:03 +02:00
Austin English 313a85f163 Spelling fixes. 2008-04-17 12:25:57 +02:00
Maarten Lankhorst ebaadba498 quartz: Obtain the duration using the index in avisplitter. 2008-04-17 11:43:05 +02:00
Maarten Lankhorst 1625817113 quartz: Store the stream index in the avi stream for files that have them. 2008-04-17 11:42:50 +02:00
Maarten Lankhorst a0e8b97ffe quartz: Check for discontinuities in the directsound renderer. 2008-04-17 11:42:41 +02:00
Maarten Lankhorst 97b9e9c3ad quartz: Make sure at least 1 sample is processed before returning. 2008-04-17 11:42:24 +02:00
Maarten Lankhorst 405e21d558 quartz: Reject samples in transform filter only when stopped.
Use S_FALSE for saying sample is rejected.
2008-04-17 11:42:15 +02:00
Maarten Lankhorst 3dc8384aa9 quartz: Reject samples in video renderer when stopped.
When stopped video renderer no longer updates, so don't even try.
2008-04-17 11:42:07 +02:00
Maarten Lankhorst 382a61391f quartz: Fix IMediaSample2 SetPreroll and SetSyncPoint. 2008-04-17 11:41:58 +02:00
Maarten Lankhorst cbb0ff37fa quartz: Fix discontinuities in wave parser. 2008-04-17 11:41:52 +02:00
Maarten Lankhorst 6165d87fc5 quartz: Add a Disconnect function to the parser and use it to clean up allocated memory in avisplitter. 2008-04-16 14:16:23 +02:00
Maarten Lankhorst aa623d2eff quartz: Parse old style avi index. 2008-04-16 14:16:09 +02:00
Maarten Lankhorst f66ad4dbe0 quartz: Make the avi splitter skip index headers. 2008-04-16 14:15:19 +02:00
Maarten Lankhorst 64be38a5b2 quartz: Dump opendml indexes and header. 2008-04-16 14:15:11 +02:00
Maarten Lankhorst 0b32692451 include: Update aviriff header. 2008-04-15 14:34:01 +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 3e9cee050f quartz: Add VIDEOINFOHEADER2 support to VideoRenderer. 2008-04-15 14:33:36 +02:00
Maarten Lankhorst ebe438c82a quartz: Bring waveparser to the same level as the mpeg splitter. 2008-04-14 23:50:13 +02:00
Maarten Lankhorst ba10e6104a quartz: Silence seeking fixmes on transform filter. 2008-04-14 23:50:13 +02:00
Maarten Lankhorst 5fb4224f81 quartz: Silence requests for IVideoWindow. 2008-04-14 23:50:13 +02:00
Maarten Lankhorst c8e31b5bdd quartz: Set sane defaults for pin stream rate. 2008-04-14 23:50:13 +02:00
Maarten Lankhorst 48f80f6296 quartz: Don't clean up in avi decoder if driver isn't opened. 2008-04-14 23:50:13 +02:00
Maarten Lankhorst bd324db059 quartz: Add stubs for the IMediaSeeking interface in SeekingPassThru. 2008-04-10 11:31:11 +02:00
Maarten Lankhorst 65e6bbd186 quartz: Add a stub for SeekingPassThru. 2008-04-10 11:31:06 +02:00