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
Maarten Lankhorst
2734e6332c
quartz: Implement stop position in the mpeg splitter.
2008-04-10 09:50:48 +02:00
Maarten Lankhorst
43f9fff0a0
quartz: Implement stop position in the filtergraph.
2008-04-10 09:48:13 +02:00
Maarten Lankhorst
f2dccab7e3
quartz: Make the directsound renderer handle the Play->Pause->Play position without dropping data.
2008-04-09 12:07:21 +02:00
Maarten Lankhorst
24cac935f0
quartz: Generate a seek table for the mpeg splitter.
...
Speeds up seeking mp3's on large files.
2008-04-09 12:07:16 +02:00
Maarten Lankhorst
55f3ba9dc0
quartz: Remove while { } while construct.
...
Thanks to Andrew Talbot for spotting this.
2008-04-09 12:07:11 +02:00
Michael Stefaniuc
71e9455b73
quartz: Add missing lock releases on some code paths (Smatch).
2008-04-09 11:47:07 +02:00
Maarten Lankhorst
994af69cac
quartz: Make the pullpin forward the BeginFlush before doing its own flushing.
2008-04-09 11:43:09 +02:00
Maarten Lankhorst
4763e83b60
quartz: Don't free a null media type in the file source.
2008-04-09 11:43:05 +02:00
Maarten Lankhorst
de117c1eb5
quartz: Make the DirectSound renderer return S_FALSE packet if in the paused state.
2008-04-09 11:42:59 +02:00
Maarten Lankhorst
8939a41563
quartz: Drop packets in the transform filter if in the wrong state.
2008-04-09 11:42:55 +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
4bc4457109
quartz: Make mpeg splitter keep track of play position and keep last sample if sending was not successful.
...
This fixes data discontinuities that earlier occured after a
stop/pause command or the downright rejection of a sample (S_FALSE).
2008-04-09 11:42:17 +02:00
Maarten Lankhorst
f4d9c09dd4
quartz: Fix deadlocks in pullpin.
2008-04-08 12:21:00 +02:00
Maarten Lankhorst
d1aa222e85
quartz: Make wait timeout in directsound slightly larger.
2008-04-08 12:20:55 +02:00
Maarten Lankhorst
01c6e64da6
quartz: Handle flushing and end of stream notifications for input pins.
2008-04-07 11:35:36 +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
45bd38ece3
quartz: Fix some memory leaks in the file source.
2008-04-07 11:35:11 +02:00
Maarten Lankhorst
d56c50c85b
quartz: Make FileAsyncReader_WaitForNext return an empty sample in flushing state.
2008-04-07 11:35:06 +02:00
Maarten Lankhorst
fab66ee7a0
quartz: Get rid of code duplication and add a flush method.
2008-04-07 11:34:59 +02:00
Maarten Lankhorst
7f7c1d0752
quartz: Add more state transitions to the filtergraph.
2008-04-07 11:34:39 +02:00
Maarten Lankhorst
cfeca053b8
quartz: Fix memory leak found by valgrind.
2008-04-03 11:29:47 +02:00
Maarten Lankhorst
9c0ea9eaa8
quartz: Implement seeking on the null renderer.
2008-04-02 23:17:16 +02:00
Maarten Lankhorst
9d6239bdac
quartz: Fix stop_playback used in pullpin.
2008-04-02 23:17:07 +02:00
Maarten Lankhorst
975dc03302
quartz: Make acmwrapper respond to a sample discontinuity by dropping the frame after parsing it.
2008-04-02 11:16:35 +02:00
Maarten Lankhorst
553fe8565d
quartz: Add seeking to mpeg splitter.
2008-04-02 11:16:28 +02:00
Maarten Lankhorst
b1b75243d4
quartz: Prepare mpeg splitter code for seeking by making most splitter parsing locked.
2008-04-02 11:16:18 +02:00
Maarten Lankhorst
0e9ed6b402
quartz: Fix parser and pins logic to no longer deadlock.
2008-04-02 11:16:09 +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
4b5d06d30f
quartz: Fix locking in MediaSeeking and forward SetPosition.
...
Don't hold locks while forwarding messages, instead rely on the
reference count. This prevents some really fun deadlocks from
occuring.
2008-04-02 11:15:22 +02:00
Maarten Lankhorst
e18129068e
quartz: Implement seeking stubs for transform filters.
2008-04-02 11:15:13 +02:00
Maarten Lankhorst
c56389ea3c
quartz: Implement graph MediaSeeking GetPositions.
2008-04-01 23:38:22 +02:00
Maarten Lankhorst
1544e52397
quartz: Allow parser filters to implement their own seeking methods.
2008-04-01 23:21:38 +02:00
Maarten Lankhorst
6fd90f1625
quartz: Small mpeg splitter fixes.
...
Just to be cautious, since it reads 4 bytes it should stop trying at
EOF-3. Also be more strict with the return values.
2008-04-01 23:21:38 +02:00
Chris Robinson
4a68b33029
quartz: Break processing loop when shutting down.
2008-04-01 11:26:29 +02:00
Maarten Lankhorst
714e807aa5
quartz: Check against a null dereference and don't read beyond the end of file.
2008-03-31 12:51:16 +02:00
Andrew Talbot
892c31e4db
quartz: Assign to structs instead of using CopyMemory.
2008-03-31 12:50:37 +02:00
Maarten Lankhorst
39623a403a
quartz: Add GetCurrentPosition using the reference clock.
2008-03-28 09:51:00 +01:00
Maarten Lankhorst
cc3ef90db0
quartz: Change name from Start position to Current position in MediaSeeking.
2008-03-28 09:50:51 +01:00
Alexandre Julliard
6af76b3daa
quartz: Avoid %ll printf formats.
2008-03-26 18:01:09 +01:00
Reece Dunn
1b31c6e616
quartz: Fixed building with MSVC headers.
2008-03-24 21:05:13 +01:00
Maarten Lankhorst
db8b2ca7b4
quartz: Silence requests for ipin on filters.
2008-03-24 11:32:26 +01:00
Maarten Lankhorst
4d745e0051
quartz: Forward requests for MediaSeeking from all pins properly.
2008-03-24 11:32:19 +01:00
Maarten Lankhorst
17a1c64686
quartz: Play silence in directsound renderer on end of stream notification.
2008-03-24 11:32:03 +01:00
Maarten Lankhorst
f8bb838455
quartz: Make acmwrapper code aware of time, and get rid of its internal buffer.
2008-03-24 11:31:48 +01:00
Maarten Lankhorst
c423511d2e
quartz: Add sanity check to mediaseeking setrate.
2008-03-24 11:31:25 +01:00
Maarten Lankhorst
b0c6a34358
quartz: Parse audio packets in mpeg splitter to obtain the duration.
2008-03-24 11:31:16 +01:00
Michael Stefaniuc
6ae786ec62
quartz: Replace second EnterCriticalSection with LeaveCriticalSection (Smatch).
2008-03-21 11:23:18 +01:00
Maarten Lankhorst
e02322aef8
quartz: Implement forwarding mediaseeking messages.
2008-03-20 14:27:34 +01:00
Maarten Lankhorst
734d6159d5
quartz: Add critical sections to IMediaSeeking.
2008-03-20 14:27:34 +01:00
Maarten Lankhorst
9ec4240065
quartz: Add mediaseeking stub to audio renderer.
2008-03-20 14:27:34 +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
366eca51df
quartz: Don't pass reference time when running.
2008-03-20 14:27:34 +01:00
Maarten Lankhorst
ea537b916e
quartz: Transmit pullpin messages further.
2008-03-20 14:27:34 +01:00
Maarten Lankhorst
3c9e2263ee
quartz: Fix bug in transmitting messages further.
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
ebf6bbd50f
quartz: Call send flush/endofstream and segment messages downstream.
2008-03-19 11:24:08 +01:00
Maarten Lankhorst
24708e4edb
quartz: Fix the magic bytes for mp3's with id3 tags.
2008-03-19 11:22:51 +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
6d965b8fb6
quartz: Silence the directsound buffer on starting.
...
If the buffer is created and stopped, the contents of the buffer are
indeterminate, by zeroing it you won't get leftovers from last play.
2008-03-15 11:20:26 +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
4c09284c91
quartz: Add directsound renderer to filter list.
2008-03-14 12:59:02 +01:00
Maarten Lankhorst
25f9d3c173
quartz: Implement detection on file extension in filesource.
2008-03-14 12:58:52 +01:00
Maarten Lankhorst
83efc64dd5
quartz: Uncomment a trace.
2008-03-14 12:58:04 +01:00
Maarten Lankhorst
b5a8df58cb
quartz: Fix typo.
2008-03-14 12:58:00 +01:00
Maarten Lankhorst
6c1d089a44
quartz: Detect and skip id3v2 header in mpeg splitter.
2008-03-14 12:57:55 +01:00
Maarten Lankhorst
e1867dac0d
quartz: Implement a dummy null renderer for directshow.
2008-03-14 12:57:09 +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
Andrew Talbot
442f29ab49
quartz: Assign to structs instead of using memcpy.
2008-03-13 11:30:24 +01:00
Chris Robinson
c925e3abc8
quartz: Don't print errors for handled return values.
2008-03-10 20:20:32 +01:00
Lei Zhang
0831be5adc
quartz: Validate input for FilterGraph2_AddFilter.
2008-03-06 13:19:34 +01:00
Rob Shearman
48000893f9
makefiles: Simplify the use of the IMPORTLIB variable in the DLL makefiles.
...
Only specify the root to keep platform-specifics out of the individual
DLL makefiles.
2008-03-04 20:55:01 +01:00
Rob Shearman
1c0122d14e
quartz: Don't assume that strlenW of a constant string can be determined at compile time.
...
Use sizeof instead to calculate the size of wszKeyName in
FilterMapper2_CreateCategory.
2008-02-29 12:39:10 +01:00
Steven Edwards
973c29716b
quartz: Bump the amount of time in the referenceclock test slightly.
2008-02-16 15:10:31 +01:00
Lei Zhang
9742724afe
quartz: Add VideoRendererDefault.
2008-02-08 11:03:22 +01:00
Andrew Talbot
8caed63edb
quartz: Remove unneeded casts.
2008-01-17 13:42:14 +01:00
Michael Stefaniuc
1f26b146d1
janitorial: Remove superfluous backslashes at end of lines.
2007-12-31 19:23:45 +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
5ddb13381e
quartz: Move aggregation tests into separate file.
2007-12-21 13:58:27 +01:00
Lei Zhang
e8f69b5a42
quartz: Do aggregation test for more video renderer interfaces.
2007-12-14 12:33:01 +01:00
Lei Zhang
bf20ca1dd4
quartz: Make aggregation test generic.
2007-12-14 12:32:54 +01:00
Lei Zhang
f5cd582bae
quartz: Fix typo in GraphConfig_AddRef.
2007-12-14 12:25:26 +01:00
Lei Zhang
63df94ba0b
quartz: Give video renderer's Inner_QueryInterface a less generic name.
2007-12-14 12:25:20 +01:00
Lei Zhang
932cc2d7f9
quartz: Make video renderer aggregatable.
2007-12-13 14:36:15 +01:00
Lei Zhang
f5075f7356
quartz: Set *ppvObject to NULL if QueryInterface fails.
2007-12-13 14:34:07 +01:00
Lei Zhang
29cc256b9a
quartz: Add referenceclock QueryInterface test.
2007-12-13 14:33:59 +01:00
Lei Zhang
766046d4ab
quartz: Add videorenderer aggregation test.
2007-12-13 14:33:50 +01:00
Lei Zhang
4f6f1bcb6e
quartz: Add videorenderer QueryInterface test.
2007-12-13 14:33:40 +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
Lei Zhang
646eefaa47
quartz: Add some IGraphBuilder related tests.
2007-12-07 17:04:15 +01:00
Lei Zhang
4ab6fd3de0
quartz: Add a test for IFilterGraph2.
2007-12-07 17:03:39 +01:00
Lei Zhang
f84f4cab70
quartz: Move current tests into their own test case.
2007-12-07 17:03:27 +01:00
Alexandre Julliard
ad9396302d
Removed some unneeded imports.
2007-12-06 21:24:24 +01:00
Michael Stefaniuc
3e8970602c
dlls: Remove duplicate includes.
2007-11-19 13:54:46 +01:00
Michael Stefaniuc
41044dcd8c
quartz: Fix memory leaks on error paths. Found by Smatch.
2007-11-19 13:53:56 +01:00
Dan Kegel
8e8f840159
quartz: Make clock test less flaky.
2007-10-09 12:31:53 +02:00
Francois Gouget
ec6e307b92
quartz: Better match the PSDK types and fix the winapi_check warnings.
2007-09-10 12:15:06 +02:00
Francois Gouget
2993785f3a
Assorted non-ANSI function declaration fixes (missing void).
2007-08-30 11:57:18 +02:00
Stefan Leichter
c13c9e3824
quartz: Remove 'recursive registry key delete' function.
2007-08-23 12:38:56 +02:00
Alex Villacís Lasso
7319157d7d
quartz: Fix IReferenceClock::GetTime() implementation for system clock.
2007-08-13 12:23:37 +02:00
Alex Villacís Lasso
9d436f697d
quartz: Add test for IReferenceClock.
2007-08-13 12:23:32 +02: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
Alex Villacís Lasso
fb8df8ea82
quartz: Fix video rendering sizing/positioning bugs.
2007-06-20 15:10:58 +02:00
Chris Robinson
92ced51b10
quartz: Don't return S_FALSE for failed connections.
2007-06-05 12:19:15 +02:00
Marcus Meissner
ccad96578d
quartz: Added some error checking on failure to CreateClassEnumerator.
2007-06-04 12:49:46 +02:00
Marcus Meissner
d2bc96bf8a
quartz: ppinsplitter might be used uninitialized (Coverity).
2007-05-23 13:14:51 +02:00
Andrew Talbot
5ded3a9e88
quartz: Exclude unused headers.
2007-05-17 12:45:03 +02:00
Andrew Talbot
a894ab6bd0
quartz: Exclude unused headers.
2007-05-17 12:44:57 +02:00
Chris Robinson
b3fab140f3
quartz: Partially implement the MPEG 1 Stream Splitter filter.
2007-04-27 13:05:28 +02:00
Chris Robinson
147b0cf5ac
quartz: Create DirectSound device and buffer at filter creation and connection respectively.
2007-04-16 12:07:55 +02:00
Chris Robinson
2faaa3b8de
quartz: Implement IAMFilterData interface for IFilterMapper.
2007-04-11 13:04:23 +02:00
Chris Robinson
eda96fa7f9
quartz: Pass the media sample to the individual transform filter callbacks.
...
This is so the filters can pass on and use timing, discontinuity, and other
information stored in the sample as needed.
2007-04-09 12:15:09 +02:00
Chris Robinson
e6e4056e1e
quartz: Fix error with operator precedence.
2007-04-09 12:14:51 +02:00
Chris Robinson
d9f755875b
quartz: Fix ALIGN macros.
2007-04-09 12:14:46 +02:00
Chris Robinson
20d87e768b
quartz: Make sure cached media samples are released for parser filters.
2007-04-07 11:46:10 +02:00
Chris Robinson
828d5a0c4a
quartz: Add a cleanup callback for parser filters to call on release.
2007-04-07 11:46:03 +02:00
Chris Robinson
e508f2cc90
quartz: Add partial implementation of IReferenceClock for DSoundRenderer.
2007-04-07 10:57:33 +02:00
Chris Robinson
2994695189
quartz: Use more precise positioning information for the DSound filter's reference clock.
2007-04-07 10:57:23 +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
30abd4ed15
quartz: Tell filters to stop sending data when the chain is broken.
2007-04-04 21:26:16 +02:00
Chris Robinson
9d41c2e694
quartz: Don't call ReleaseSemaphore on NULL semaphore handles.
2007-04-04 21:26:09 +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
b7a4405d0a
quartz: Break loop on error in ACMWrapper.
2007-04-04 12:40:05 +02:00
Chris Robinson
243351d223
quartz: Add a QueryConnect method for transform filters.
2007-04-04 12:39:58 +02:00
Chris Robinson
71bcdc9044
quartz: Connect input when the pins connect, not when querying.
...
And clean up when disconnecting input.
2007-04-04 12:39:49 +02:00
Chris Robinson
c28b534550
quartz: Hold a reference on the PullPin's filter while the processing thread is alive.
...
Also removes dead code caused by the change.
2007-04-04 12:39:30 +02:00
Chris Robinson
c76d5561a8
quartz: Use a second-long DSound buffer for playback.
2007-04-03 11:32:40 +02:00
Chris Robinson
b1bfae286f
quartz: Use a safe APC to kill the PullPin thread when the PullPin is being released.
2007-04-02 11:18:04 +02:00
Chris Robinson
9d1f49cd9f
quartz: Set the sample time based on the number of bytes read before sending it downstream.
2007-04-02 11:16:00 +02:00
Chris Robinson
b3c4d6eee6
quartz: Remove errant parser output pins on input connection failure.
2007-04-02 11:15:49 +02:00
Chris Robinson
4eea356e2d
quartz: Don't fill the dsound buffer with small amounts.
2007-04-02 11:15:44 +02:00
Chris Robinson
60f325d967
quartz: Add filters using their names.
2007-03-30 10:55:20 +02:00
Chris Robinson
8a1d4d1e4c
quartz: Protect DSound buffer creation with a critical section lock.
2007-03-28 12:05:35 +02:00
Chris Robinson
a110e6e433
quartz: Return proper CLSID for parser filters.
2007-03-27 12:35:22 +02:00
Chris Robinson
908cc50e23
quartz: Propogate transform filter errors upstream.
2007-03-26 12:30:13 +02:00
Chris Robinson
f5400a2851
quartz: Store the current reference time with the PullPin.
2007-03-26 12:30:09 +02:00
Chris Robinson
57400724b6
quartz: Implement volume and pan control for DSoundRenderer.
2007-03-26 12:30:04 +02:00
Chris Robinson
a7151d8851
quartz: Make DSoundRender_Run start the playback buffer.
2007-03-26 12:29:58 +02:00
Chris Robinson
3487da71ce
quartz: Fully disconnect the AsyncReader when released.
2007-03-21 11:56:00 +01:00
Chris Robinson
ef5de5c120
quartz: Don't redundantly set waveparser output pin data before it's created.
2007-03-21 11:55:23 +01:00
Michael Stefaniuc
0674ff43b2
quartz: Fix typo that produced an empty if-statement.
2007-03-20 13:00:30 +01:00
Chris Robinson
6bd3b156ac
quartz: Don't delete critical sections before the filter's pins are done using them.
2007-03-20 13:00:26 +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
Chris Robinson
d8dc9fb319
quartz: Release objects when pins fail to connect.
2007-03-19 12:23:54 +01:00
Chris Robinson
52529c923d
quartz: Hold a reference on a filter while sending data to it.
2007-03-19 12:23:46 +01:00
Chris Robinson
2e726e6e11
quartz: Avoid asserting from used samples on allocator release.
2007-03-13 21:28:57 +01:00
Chris Robinson
809f68420f
quartz: Force disconnect when a filter is fully released.
2007-03-13 21:28:26 +01:00
Chris Robinson
559d541cf8
quartz: Cleanup properly around error conditions and avoid a potential infinite loop.
2007-03-13 21:28:08 +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
868dd534e8
quartz: Stop DSound buffer playback when the filter is paused or stopped, not the next time it's processed.
2007-03-12 12:08:25 +01:00
Chris Robinson
e44a0d6d4d
quartz: Check allocation failure and clear memory in DSound Renderer.
2007-03-09 21:20:22 +01:00
Tomas Carnecky
9b4f99782e
dsound: Update prototypes for IDirectSoundBuffer::Lock/Unlock.
2007-03-08 21:30:54 +01:00
Chris Robinson
045270605c
quartz: Use proper alloc/free functions for COM objects.
2007-03-08 13:53:54 +01:00
Chris Robinson
0717c96192
quartz: Improve reference traces.
2007-03-05 18:08:29 +01:00
Chris Robinson
efe156ae8e
quartz: Don't AddRef an object we just created and are handing back to the caller.
2007-03-05 13:00:24 +01:00
Chris Robinson
7f9becf854
quartz: Report the previous refcount of a PullPin object.
2007-03-05 12:59:49 +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
92aaba0d6f
quartz: Return the proper interface for IFilterMapper.
2007-03-05 12:07:59 +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