History log of /haiku/src/apps/mediaplayer/media_node_framework/NodeManager.h
Revision Date Author Comments
# bafcab92 13-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Minor cleanup, no functional changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36222 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa1a1c29 20-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

All sorts of refactoring with regards to the audio node and format setup. At
first I tried adding support for changing the format during running the node
connection, but later found out that this is not implemented in the system
mixer (it has this weird setting to allow input format changes, but if you
do this, the media_server will just crash, since the backend does not support
it yet). Also, the Media Kit documentation is extremely lacking in this regard.
I ended up re-establishing the node connection when the audio format is
supposed to change, just like it is already done for video. This means that
audio files now play with their native channel count and frame rate. But it
isn't so well tested yet, if 48 kHz for example introduce some clicks. The
channel count should not be a problem though, I've also tested that with some
movies and it works fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33678 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 613ecaf5 22-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Added the implementation behind the "Use overlays if available" and "Scale
videos smoothly in non-overlay mode" options.
* Disabled the other controls in the SettingsWindow which are not yet
implemented.
* Enable and disable Revert button according to settings state.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27157 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eb91d005 14-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Whether an audio and/or video node is used is now more explicit. The audio
node can now also be turned off for videos that don't have audio.
* The PlaybackManager currently has the "no audio" support added in a not
quite so nice way, will have to think about something, this is just quick
and dirty to get it going. There is just two places where the audio time
needs to be ignored, because it remains at zero.

-> Especially when using OSS, the seeking latency will be much reduced when
playing videos that have no sound.

* The Controller now maintains the frame it wanted to seek to and does not
forward "position changed" to other listeners as long as the seek frame
has not been reached. This fixes the slider jumping back to the old position
for a bit until jumping back to the seek frame. It also fixes another
problem when switching to the next file. Because the total duration is
already adopted while the old clip is still playing within the seek latency,
the current position jumped to the new relative position, while it is
still refering to the position within the old clip. So both seeking and
switching clips looks much smoother now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26415 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9282400f 06-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* The SeekSlider did not update the knob when it was resized.
* Subtile visual improvements to the SeekSlider.
* Added a PeakView for displaying the audio peaks that are produced by
the AudioProducer.
* A MessageEvent can now directly take a custom BMessage for delivery.
* The peak notification mechanism is a bit separate from the rest of the
Controller notification design, since the notification delivery should
be delayed until the audio is actually audible. I may change this
quick and dirty design though, since it is not so nice. The target
time could also be part of the message and be handled at a different
stage, but that would make it less efficient.
* Layout improvements to the playback controls.
* Code cleanup here and there, changed some license statements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7f2503a 31-May-2008 Stephan Aßmus <superstippi@gmx.de>

* Support codecs that don't support B_YCbCrXXX color spaces.
* Leave the codec a chance to advertise the best output color space,
try B_YCbCr422 as the most widely supported format in case the codec
does not advertise.
* Support two more overlay colorspace modes in the video consumer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25731 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bbf1ff83 30-May-2008 Stephan Aßmus <superstippi@gmx.de>

Added BMediaRoster class definition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25727 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0fc56ed5 30-May-2008 Stephan Aßmus <superstippi@gmx.de>

* Moved a bunch of non-primary interface classes into a new subfolder
"interface"

* Complete reimplementation of the playback engine using Media Nodes:
- Seeking video files does not appear to lockup the playback anymore, but
works on a frame accurate level even for keyframe based streams. There is
currently a problem with certain container formats, the audio track reports
a "Device Seek Error" in certain conditions. In that case audio goes silent,
and can be restarted by going back to the beginnings of the stream.
- Video overlays are now supported.
- It would be possible to connect the output of the MediaPlayer to other
applications or dormant media nodes.

* Known regressions:
- The volume slider has currently no effect anymore.
- Switching the audio track during playback has a known race condition and
can crash the player.
- The new engine is not as "light weight" as the old one. I tagged the
previous implementation in tags/components/mediaplayer-engine-v1. It does
not seem to have any noticable effect though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25725 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bafcab9265d78ede53aa2d22cce1d3f938fccf93 13-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Minor cleanup, no functional changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36222 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa1a1c2980105e6293ad7cce436360ffa5e9033a 20-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

All sorts of refactoring with regards to the audio node and format setup. At
first I tried adding support for changing the format during running the node
connection, but later found out that this is not implemented in the system
mixer (it has this weird setting to allow input format changes, but if you
do this, the media_server will just crash, since the backend does not support
it yet). Also, the Media Kit documentation is extremely lacking in this regard.
I ended up re-establishing the node connection when the audio format is
supposed to change, just like it is already done for video. This means that
audio files now play with their native channel count and frame rate. But it
isn't so well tested yet, if 48 kHz for example introduce some clicks. The
channel count should not be a problem though, I've also tested that with some
movies and it works fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33678 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 613ecaf5f9eb4aaf399917fb239979e5256fb274 22-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Added the implementation behind the "Use overlays if available" and "Scale
videos smoothly in non-overlay mode" options.
* Disabled the other controls in the SettingsWindow which are not yet
implemented.
* Enable and disable Revert button according to settings state.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27157 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eb91d0058dead0e6f8dc79cc531907fb31012b6b 14-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Whether an audio and/or video node is used is now more explicit. The audio
node can now also be turned off for videos that don't have audio.
* The PlaybackManager currently has the "no audio" support added in a not
quite so nice way, will have to think about something, this is just quick
and dirty to get it going. There is just two places where the audio time
needs to be ignored, because it remains at zero.

-> Especially when using OSS, the seeking latency will be much reduced when
playing videos that have no sound.

* The Controller now maintains the frame it wanted to seek to and does not
forward "position changed" to other listeners as long as the seek frame
has not been reached. This fixes the slider jumping back to the old position
for a bit until jumping back to the seek frame. It also fixes another
problem when switching to the next file. Because the total duration is
already adopted while the old clip is still playing within the seek latency,
the current position jumped to the new relative position, while it is
still refering to the position within the old clip. So both seeking and
switching clips looks much smoother now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26415 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9282400ff444c8d85c264f0f5fd16d1c639b7fae 06-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* The SeekSlider did not update the knob when it was resized.
* Subtile visual improvements to the SeekSlider.
* Added a PeakView for displaying the audio peaks that are produced by
the AudioProducer.
* A MessageEvent can now directly take a custom BMessage for delivery.
* The peak notification mechanism is a bit separate from the rest of the
Controller notification design, since the notification delivery should
be delayed until the audio is actually audible. I may change this
quick and dirty design though, since it is not so nice. The target
time could also be part of the message and be handled at a different
stage, but that would make it less efficient.
* Layout improvements to the playback controls.
* Code cleanup here and there, changed some license statements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7f2503a082c6e32142bca8f396eee002b2ec851 31-May-2008 Stephan Aßmus <superstippi@gmx.de>

* Support codecs that don't support B_YCbCrXXX color spaces.
* Leave the codec a chance to advertise the best output color space,
try B_YCbCr422 as the most widely supported format in case the codec
does not advertise.
* Support two more overlay colorspace modes in the video consumer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25731 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bbf1ff835d6f96fcd8d265980400fb7c82832480 30-May-2008 Stephan Aßmus <superstippi@gmx.de>

Added BMediaRoster class definition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25727 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0fc56ed57bdd5d2d44f33edd17d94210704613bd 30-May-2008 Stephan Aßmus <superstippi@gmx.de>

* Moved a bunch of non-primary interface classes into a new subfolder
"interface"

* Complete reimplementation of the playback engine using Media Nodes:
- Seeking video files does not appear to lockup the playback anymore, but
works on a frame accurate level even for keyframe based streams. There is
currently a problem with certain container formats, the audio track reports
a "Device Seek Error" in certain conditions. In that case audio goes silent,
and can be restarted by going back to the beginnings of the stream.
- Video overlays are now supported.
- It would be possible to connect the output of the MediaPlayer to other
applications or dormant media nodes.

* Known regressions:
- The volume slider has currently no effect anymore.
- Switching the audio track during playback has a known race condition and
can crash the player.
- The new engine is not as "light weight" as the old one. I tagged the
previous implementation in tags/components/mediaplayer-engine-v1. It does
not seem to have any noticable effect though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25725 a95241bf-73f2-0310-859d-f6bbb57e9c96