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