#
f6d0ea5c |
|
20-Sep-2020 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
MediaPlayer: improve handling of cover art. Fixes #16531.
|
#
09095817 |
|
18-May-2018 |
Murai Takashi <tmurai01@gmail.com> |
Mediaplayer: Suppress -Werror=class-memaccess Suppress -Werror=class-memaccess pointed out by gcc8. * Remove unneed memset(), since media_format is cleared by constructor. * Use media_format::Clear() instead of memset() Change-Id: I02e19c1fab1f1b3f6c348e1d3ac63536d5c829b2 Reviewed-on: https://review.haiku-os.org/484 Reviewed-by: Barrett17 <b.vitruvio@gmail.com>
|
#
843a122f |
|
04-May-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
MediaPlayer: some 64 bit fixes
|
#
818577b2 |
|
06-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Make PlaybackManager::CurrentFrame() return int64, like what it's internally using. Adapt NotifyCurrentFrameChanged() implementors. * Controller::SetTo() does not need to set the current frame, since either Init() or FormatChanged() will have taken care of it now. * Reset the seeking request info in Controller::SetTo(). * Changed the parameter passed to VideoSupplier::FillBuffer() from media_format to media_raw_video_format, so the VideoProducer doesn't have to generate a media_format for each frame... * ProxyVideoSupplier caches the last produced frame, which avoids a situation that the VideoProducer asks to generate the same frame twice sometimes. * In PlaybackManager::_PushState(), make sure we really schedule the next current_frame if asked. This avoids one situation in which the VideoSupplier was asked to generate the same frame again and fixes playback after pausing (was showing black video until the next keyframe before. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38553 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
41af979e |
|
01-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Simplified the code a bit, removed debugging output and added a work-around for the problem that FindKeyFrameForFrame() may return another frame for a previously found keyframe (due to rounding issues in the extrator). At the moment, files which used to play horribly play pretty well now for me. One remaining problem is that audio may be mute when seeking far ahead in file, and the audio decoding has to catch up. It will eventually be all ok. Once a section of the file has played, it becomes seekable. This seems to be weird behavior of some FFmpeg demuxers, and only with some files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38507 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
65e71a6e |
|
01-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Coding style fixes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38502 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7516d989 |
|
30-Aug-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Added FindKeyFrameForFrame() to the VideoTrackSupplier API and the implementation to MediaTrackerVideoSupplier. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38438 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e6ac2ec4 |
|
05-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* The window would not reset the audio/video track to 0 on a new file if the Controller would keep the last audio/video track index across files (which would be nice for certain situations). * Better error message for unsupported files, especially for the B_MEDIA_NO_HANDLER error. * In the Controller, try to obtain the track duration and ignore tracks that return a bogus duration. I have some MP3 files on ZETA that are obviously not handled correctly by the ZETA mp3 decoder. Previously, the player would just sit there and appeared to have some other internal error. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26261 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9639f1bf |
|
05-Jun-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Move the color_space_to_string() function into it's own file. * On BeOS "bitmaps_support_space()" returns false for YCbCr color spaces. :-( * Refactor the code which sets up the decoded format in the MediaTrack- VideoSupplier to always start with a clean format for multiple calls to BMediaTrack::DecodedFormat(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25824 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d39288b8 |
|
06-Jun-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Actually set the format to B_RGB32 when retrying for that format. * Do not exit in case of success to retry with B_RGB32, so the bytes per row check is performed. * Ignore if bytes per row is big enough. * Check the success for the last attempt to set DecodedFormat(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25821 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
64c4d8f6 |
|
02-Jun-2008 |
Stephan Aßmus <superstippi@gmx.de> |
I tracked down a problem with a specific clip I have here. In the end, the problem was that no codec was installed for it, but I fixed a bunch of issues on the way to find out. Now the controller will not rely on the number of audio and video tracks, but on the fact that it could instantiate suppliers at all. Made the MediaTrackVideoSupplier return an init error. Should be replicated for the MediaTrackAudioSupplier. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25765 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
474f214f |
|
31-May-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Print a warning in case the video buffer is bigger than what should be displayed, does not seem to be the reason for the problem I am observing with one clip I have, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25732 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
|
#
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
|
#
2a72b9fe |
|
05-Jun-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* re-enabled the InfoWin git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21335 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5fa5e5fe |
|
29-May-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* added notification support to Playlist and Controller * added AbstractLOAdapter by Ingo Weinhold which makes notifications asynchronous * removed "Player" interface/concept, replaced it by the notification mechanism (window loads new file when "current" ref index changes in Playlist) * removed some cross classes dependencies * the wind buttons are not displayed anymore for now * lots of changes to the Controller - the decoder/player threads are kept running for the entire lifetime of the Controller object (in essence, makes it possible to playback seamless) - abstracted BMediaTrack usage into "Video-" and "AudioSupplier" objects (the BMediaTrack pointers are only still there, because I have not gotten around to fix the messy/hacky InfoWindow) - reaching the end of the stream will trigger a notification, so that the next file from the playlist is played - fSoundOutput is managed by the Controller - tried to make seeking seem more controlled (slider doesn't jump back to previous position) - playback position is correctly updated in GUI - volume is maintained independend of SoundOutput so that it can be transfered from one to the next output - performance time is maintained correctly (?) even if no audio stream is present * work in progress Playlist window (drag sorting does not work yet!) * rearranged menus a bit * rearranged overlay code in the VideoView, but it cannot work like it is currently designed, since the buffers need to be switched all at once, which the video decoding thread is not doing yet * dragging files into the main window with shift held down appends to the existing playlist * dropping folders adds files recursively * pressing space toggles playback (instead of changing some settings of the GUI) * fixed some more minor issues or unimplemented stuff in the UI git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21276 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
843a122fd9a17bfde0f01db2c5660c33524bf40c |
|
04-May-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
MediaPlayer: some 64 bit fixes
|
#
818577b203870d5b3625514a99c35726f42cbde3 |
|
06-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Make PlaybackManager::CurrentFrame() return int64, like what it's internally using. Adapt NotifyCurrentFrameChanged() implementors. * Controller::SetTo() does not need to set the current frame, since either Init() or FormatChanged() will have taken care of it now. * Reset the seeking request info in Controller::SetTo(). * Changed the parameter passed to VideoSupplier::FillBuffer() from media_format to media_raw_video_format, so the VideoProducer doesn't have to generate a media_format for each frame... * ProxyVideoSupplier caches the last produced frame, which avoids a situation that the VideoProducer asks to generate the same frame twice sometimes. * In PlaybackManager::_PushState(), make sure we really schedule the next current_frame if asked. This avoids one situation in which the VideoSupplier was asked to generate the same frame again and fixes playback after pausing (was showing black video until the next keyframe before. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38553 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
41af979eb87860eac2488315000dc188be6f4c80 |
|
01-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Simplified the code a bit, removed debugging output and added a work-around for the problem that FindKeyFrameForFrame() may return another frame for a previously found keyframe (due to rounding issues in the extrator). At the moment, files which used to play horribly play pretty well now for me. One remaining problem is that audio may be mute when seeking far ahead in file, and the audio decoding has to catch up. It will eventually be all ok. Once a section of the file has played, it becomes seekable. This seems to be weird behavior of some FFmpeg demuxers, and only with some files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38507 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
65e71a6e022a0b92c45e13580e675a471495e968 |
|
01-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Coding style fixes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38502 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7516d989b1a1afa7ec2080e407e941d93c524e76 |
|
30-Aug-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Added FindKeyFrameForFrame() to the VideoTrackSupplier API and the implementation to MediaTrackerVideoSupplier. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38438 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e6ac2ec43e8d5c0215f33734b2bfbb1e69c138c8 |
|
05-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* The window would not reset the audio/video track to 0 on a new file if the Controller would keep the last audio/video track index across files (which would be nice for certain situations). * Better error message for unsupported files, especially for the B_MEDIA_NO_HANDLER error. * In the Controller, try to obtain the track duration and ignore tracks that return a bogus duration. I have some MP3 files on ZETA that are obviously not handled correctly by the ZETA mp3 decoder. Previously, the player would just sit there and appeared to have some other internal error. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26261 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9639f1bf6c905a50ff01f38b23dac4dbe79fdd9e |
|
05-Jun-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Move the color_space_to_string() function into it's own file. * On BeOS "bitmaps_support_space()" returns false for YCbCr color spaces. :-( * Refactor the code which sets up the decoded format in the MediaTrack- VideoSupplier to always start with a clean format for multiple calls to BMediaTrack::DecodedFormat(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25824 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d39288b8d671db3b68fb04445f877767da3488b2 |
|
06-Jun-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Actually set the format to B_RGB32 when retrying for that format. * Do not exit in case of success to retry with B_RGB32, so the bytes per row check is performed. * Ignore if bytes per row is big enough. * Check the success for the last attempt to set DecodedFormat(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25821 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
64c4d8f6065829193ec0f52d35d2a317cbfae267 |
|
02-Jun-2008 |
Stephan Aßmus <superstippi@gmx.de> |
I tracked down a problem with a specific clip I have here. In the end, the problem was that no codec was installed for it, but I fixed a bunch of issues on the way to find out. Now the controller will not rely on the number of audio and video tracks, but on the fact that it could instantiate suppliers at all. Made the MediaTrackVideoSupplier return an init error. Should be replicated for the MediaTrackAudioSupplier. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25765 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
474f214fdb5c9439272e3d3eb4c363d7cdee2068 |
|
31-May-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Print a warning in case the video buffer is bigger than what should be displayed, does not seem to be the reason for the problem I am observing with one clip I have, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25732 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
|
#
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
|
#
2a72b9fead28a8cb1cad04c7a8bb023adb41bea0 |
|
05-Jun-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* re-enabled the InfoWin git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21335 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5fa5e5fea7e2752ce0f9eb514b82f7c34ea308e6 |
|
29-May-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* added notification support to Playlist and Controller * added AbstractLOAdapter by Ingo Weinhold which makes notifications asynchronous * removed "Player" interface/concept, replaced it by the notification mechanism (window loads new file when "current" ref index changes in Playlist) * removed some cross classes dependencies * the wind buttons are not displayed anymore for now * lots of changes to the Controller - the decoder/player threads are kept running for the entire lifetime of the Controller object (in essence, makes it possible to playback seamless) - abstracted BMediaTrack usage into "Video-" and "AudioSupplier" objects (the BMediaTrack pointers are only still there, because I have not gotten around to fix the messy/hacky InfoWindow) - reaching the end of the stream will trigger a notification, so that the next file from the playlist is played - fSoundOutput is managed by the Controller - tried to make seeking seem more controlled (slider doesn't jump back to previous position) - playback position is correctly updated in GUI - volume is maintained independend of SoundOutput so that it can be transfered from one to the next output - performance time is maintained correctly (?) even if no audio stream is present * work in progress Playlist window (drag sorting does not work yet!) * rearranged menus a bit * rearranged overlay code in the VideoView, but it cannot work like it is currently designed, since the buffers need to be switched all at once, which the video decoding thread is not doing yet * dragging files into the main window with shift held down appends to the existing playlist * dropping folders adds files recursively * pressing space toggles playback (instead of changing some settings of the GUI) * fixed some more minor issues or unimplemented stuff in the UI git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21276 a95241bf-73f2-0310-859d-f6bbb57e9c96
|