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