Commit Graph

97 Commits

Author SHA1 Message Date
Nikolay Sivov 68b5a0574c mf/session: Handle source buffering events.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-02 12:37:28 +02:00
Nikolay Sivov fafe82c6cc mf: Add internal placeholder command for end-of-presentation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:59 +02:00
Nikolay Sivov 40c60b7eb8 mf: Serialize session commands.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:59 +02:00
Nikolay Sivov 59ae49446e mf: Move locking from individual command helpers to command callback.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:59 +02:00
Nikolay Sivov a9e2044a11 mf: Add a helper to set paused state for the session.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:59 +02:00
Nikolay Sivov b68a765b95 mf: Add a helper to set closed state for the session.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:59 +02:00
Nikolay Sivov 741016dd32 mf: Add a helper for session commands without parameters.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:58 +02:00
Nikolay Sivov 35242aa417 mf: Fix timer instance leak on error path in SetTimer().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-06 19:02:06 +02:00
Derek Lesho 1962a1f969 mf: Add missing ::Release of clock timer.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Nikolay Sivov 08cdea91ba mf: Set approximate occurrence time for MESessionStopped/MESessionEnded events.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 22:04:07 +02:00
Nikolay Sivov fe5e93ccc6 mf: Raise MESessionStopped again if session is already stopped.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 22:04:07 +02:00
Nikolay Sivov 39c66af35e mf: Add support for end of presentation state change.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 22:04:07 +02:00
Nikolay Sivov 8262ea2909 mf: Forward MEEndOfPresentation event from Media Session.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 21:33:30 +02:00
Nikolay Sivov df0608ac83 mf: Handle EndOfStream events within Media Session.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 21:33:30 +02:00
Nikolay Sivov 8a299c4bc3 mf: Implement sink prerolling.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 21:33:30 +02:00
Nikolay Sivov 387bf24376 mf: Use original topology instance for both MESessionTopologySet and MESessionTopologyStatus.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-10 17:39:24 +02:00
Nikolay Sivov 4aafa3c38d mf: Always queue set topologies.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-10 17:39:21 +02:00
Nikolay Sivov 3e12d29c87 mf: Fix returned session rates when pipeline objects don't support rate control.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Nikolay Sivov 875b0c40a9 mf: Fix a typo when setting event attribute.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Nikolay Sivov e121a55293 mf: Add a helper to trace timestamp arguments.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:26:33 +01:00
Nikolay Sivov 92d6a8bf8f mf: Set presentation clock for all node types.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-18 16:40:35 +01:00
Nikolay Sivov 69885afbed mf: Forward more Audio Session events from the session.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-18 16:40:33 +01:00
Nikolay Sivov 43a88a7317 mf: Forward sink invalidation events to application.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 15:59:02 +01:00
Nikolay Sivov 9e33f3f312 mf: Remove FIXME for zero buffer size, it's used as is.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:37:25 +01:00
Nikolay Sivov 23757ca513 mf: Implement sample delivering to transform nodes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 14:42:02 +01:00
Nikolay Sivov 72d0c7e0a7 mf: Add support for requesting sample from transform nodes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 14:42:02 +01:00
Nikolay Sivov f45419d05a mf: Keep transform node input/output streams map.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 14:42:02 +01:00
Nikolay Sivov c6f0124e84 mf: Pass start and flush messages to transform nodes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 14:42:02 +01:00
Nikolay Sivov 7454ac9c04 mf: Send MFT_MESSAGE_NOTIFY_BEGIN_STREAMING message after setting current topology.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 14:42:02 +01:00
Nikolay Sivov 321484d115 mf: Handle basic case of sample request/response.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 14:42:02 +01:00
Nikolay Sivov 2eb80e1278 mf: Use single list for topology nodes in current presentation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 14:42:02 +01:00
Nikolay Sivov f5ace38adc mf: Do not touch clock state when setting rate.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:56:29 +01:00
Nikolay Sivov 02613046ef mf: Notify just added sinks with current clock state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:56:25 +01:00
Nikolay Sivov 5009e5da07 mf: Set shutdown state flag for presentation clock.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:56:20 +01:00
Nikolay Sivov be08f2c203 mf: Match session state names with events.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 14:20:25 +01:00
Nikolay Sivov 186b6a6fa7 mf: Implement transition to closed state together with sink finalization.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 14:20:25 +01:00
Nikolay Sivov 23012b1304 mf: Correctly respond to start attempt from closed state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 14:20:25 +01:00
Nikolay Sivov 15a9ab9409 mf: Handle shutdown state in GetFullTopology().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 14:20:25 +01:00
Nikolay Sivov de95a03029 mf: Fix GetClock() for shutdown state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-02 13:06:08 +01:00
Nikolay Sivov 5ec5eb0790 mf: Add a helper to check for session shutdown state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-02 13:06:04 +01:00
Nikolay Sivov 0b4e460184 mf: Implement GetFullTopology().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-02 13:05:56 +01:00
Nikolay Sivov ddfb56c0b7 mf: Implement Stop() command for media session.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00
Nikolay Sivov d4cc70e1b6 mf: Allow restarting from paused state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00
Nikolay Sivov 43fd6bd94a mf: Implement Pause() command for media session.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00
Nikolay Sivov 74e7e45d9f mf: Track stream sinks state to maintain session state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00
Nikolay Sivov 9122d73ccd mf: Implement two-step session transition to running state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00
Nikolay Sivov 9eb7337a58 mf: Add support for MESessionCapabilitiesChanged event.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00
Nikolay Sivov c61219625c mf: Query for optional event generator for sinks.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00
Nikolay Sivov 4fc32ab657 mf: Keep a list of output streams.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00
Nikolay Sivov 5dc6db5fd3 mf: Use generic enum for object states.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:02 +01:00