Commit Graph

778 Commits

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