#
c6ffa94f |
|
14-Jun-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
MediaPlayer: style fixes, print performance time of dropped frames * Helps understanding why the frames get dropped in some cases, where the computed performance time is not correct.
|
#
843a122f |
|
04-May-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
MediaPlayer: some 64 bit fixes
|
#
b6d5916a |
|
26-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Since a lot of MediaPlayer code would actually not compile on BeOS anymore, I've removed the BeOS versions from the rest of the source. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38815 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a92abad7 |
|
24-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
In the unexpected case that an extractor seeked forward while we actually asked to seek backwards, cause us to produce silence. This fixes some occasionally very unpleasant noise after seeking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38805 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d48deeab |
|
18-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Coding style. * Always use keyframes. The BMediaTrack may not be able to implement FindKeyFrameForFrame(), so the detection may not work even though the track really does use keyframes. If it doesn't, then no harm is done anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38721 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
13ff011b |
|
03-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Removed left-over debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b6aa6d0d |
|
01-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Removed left-over debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38501 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f9624607 |
|
01-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Several improvements that make the audio playback much more robust: * Use a much larger buffer size, since we cache a lot anyway. * When reading uncached frames, don't trip over the situation that the seekable keyframe was very far away from where we want to read. Don't get caught up in a loop decoding an entire movie, but return a time-out error instead. This will get us back on track eventually. * Before seeking to a keyframe, check if the current track position is actually nearer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38498 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8dd3060d |
|
12-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* The AudioProducer now correctly handles late producer notices by ignoring extra notices for buffers already scheduled. * Also, the AudioSupplier/AudioReader classes now know their initial latency, and the AudioProducer is now using that one to advertize its own initial latency - this fixes late buffers on start, causing the latency to grow too large. * Cleanup here and there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36199 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8856fd5f |
|
14-Jul-2009 |
Jérôme Duval <korli@users.berlios.de> |
Have MediaPlayer supports files with unknown duration: * Controller: accept streams with unknown duration. * PlaybackManager: trusts the current frame start and end when frameCount not positive. Also don't stop playing when fStopPlayingFrame is zero. * MediaTrackAudioSupplier: only fills with silent when the frame count is not zero. * added some traces. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c60fcc87 |
|
23-May-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Changed the PlaylistItem interface to be hopefully more flexible. It can probably still be improved. * Renamed EntryRefPlaylistItem to just FilePlaylistItem. * Moved the "move into Trash" and "restore from Trash" implementation into FilePlaylistItem. Also added what's needed to allow Tracker to restore the entry itself. * Refactored everything to make Playlist use PlaylistItems instead of entry_refs and all that entails... * The transition to virtualize PlaylistItems is not complete yet in the Controller, since it still uses BMediaFile there. But it's much easier to change that now. * Objects which keep a PlaylistItem around do correct reference counting, but some commands could be simplified if they were using references as well. It still should work correctly, though, if I didn't miss anything. It should also fix theoretical situations of encountering out-of-memory while messing with the Playlist leading to inconsistent state between Undo/Redo and then leaking items because of that. * Added the discussed change that MediaPlayer checks it's own supported types before rejecting a file by super type. (untested) * When importing playlist items, the currently playling item is better maintained during Undo/Redo. * Some debugging code added in MediaTrackAudioSupplier, no functional changes. * Fixed a number of coding style issues and automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30834 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fb3e35fc |
|
22-Jan-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fixing all headers/namespaces/name lookup problems that hinder a GCC 4.3.2 build. I sure hope that this doesn't break the build for anyone else. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28992 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
870dc73f |
|
12-Sep-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Fixed CID 1292. If the allocation or adding to the list of the very first Buffer failed, the buffer data would be leaked. Note that for failure to allocate later buffers, the data is correctly freed in _FreeBuffers(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27459 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ad5756bf |
|
05-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Accidentally left some dirt when removing debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26262 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
|
#
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
|
#
c6ffa94f5b9e6c9c378312e87631d6c1448c4699 |
|
14-Jun-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
MediaPlayer: style fixes, print performance time of dropped frames * Helps understanding why the frames get dropped in some cases, where the computed performance time is not correct.
|
#
843a122fd9a17bfde0f01db2c5660c33524bf40c |
|
04-May-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
MediaPlayer: some 64 bit fixes
|
#
b6d5916a70257d4dc875b7a6b03ee55e12158c7c |
|
26-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Since a lot of MediaPlayer code would actually not compile on BeOS anymore, I've removed the BeOS versions from the rest of the source. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38815 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a92abad742cf0866497301c005db5a3aea14be7e |
|
24-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
In the unexpected case that an extractor seeked forward while we actually asked to seek backwards, cause us to produce silence. This fixes some occasionally very unpleasant noise after seeking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38805 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d48deeab21e4042fc00bc10ab2edf21409198550 |
|
18-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Coding style. * Always use keyframes. The BMediaTrack may not be able to implement FindKeyFrameForFrame(), so the detection may not work even though the track really does use keyframes. If it doesn't, then no harm is done anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38721 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
13ff011b85f003ed8b024cda8b7762240d117fbf |
|
03-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Removed left-over debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b6aa6d0da3eb99795cf5e12958ffaef2bddf90c5 |
|
01-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Removed left-over debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38501 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f96246077dd64691c7c5e5c60736a48b0d3d8abf |
|
01-Sep-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Several improvements that make the audio playback much more robust: * Use a much larger buffer size, since we cache a lot anyway. * When reading uncached frames, don't trip over the situation that the seekable keyframe was very far away from where we want to read. Don't get caught up in a loop decoding an entire movie, but return a time-out error instead. This will get us back on track eventually. * Before seeking to a keyframe, check if the current track position is actually nearer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38498 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8dd3060da4f50b8de2830fd93216b186efec7c4f |
|
12-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* The AudioProducer now correctly handles late producer notices by ignoring extra notices for buffers already scheduled. * Also, the AudioSupplier/AudioReader classes now know their initial latency, and the AudioProducer is now using that one to advertize its own initial latency - this fixes late buffers on start, causing the latency to grow too large. * Cleanup here and there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36199 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8856fd5fcfde9a92c1fbd17d8b753b1bc6022089 |
|
14-Jul-2009 |
Jérôme Duval <korli@users.berlios.de> |
Have MediaPlayer supports files with unknown duration: * Controller: accept streams with unknown duration. * PlaybackManager: trusts the current frame start and end when frameCount not positive. Also don't stop playing when fStopPlayingFrame is zero. * MediaTrackAudioSupplier: only fills with silent when the frame count is not zero. * added some traces. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c60fcc87e04b0af21ed9f01581b23d1f714a366f |
|
23-May-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Changed the PlaylistItem interface to be hopefully more flexible. It can probably still be improved. * Renamed EntryRefPlaylistItem to just FilePlaylistItem. * Moved the "move into Trash" and "restore from Trash" implementation into FilePlaylistItem. Also added what's needed to allow Tracker to restore the entry itself. * Refactored everything to make Playlist use PlaylistItems instead of entry_refs and all that entails... * The transition to virtualize PlaylistItems is not complete yet in the Controller, since it still uses BMediaFile there. But it's much easier to change that now. * Objects which keep a PlaylistItem around do correct reference counting, but some commands could be simplified if they were using references as well. It still should work correctly, though, if I didn't miss anything. It should also fix theoretical situations of encountering out-of-memory while messing with the Playlist leading to inconsistent state between Undo/Redo and then leaking items because of that. * Added the discussed change that MediaPlayer checks it's own supported types before rejecting a file by super type. (untested) * When importing playlist items, the currently playling item is better maintained during Undo/Redo. * Some debugging code added in MediaTrackAudioSupplier, no functional changes. * Fixed a number of coding style issues and automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30834 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fb3e35fcec1ef41b413b3b121764509f436dee4d |
|
22-Jan-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fixing all headers/namespaces/name lookup problems that hinder a GCC 4.3.2 build. I sure hope that this doesn't break the build for anyone else. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28992 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
870dc73f78c9613a7b3000616f9f99afc0df1602 |
|
12-Sep-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Fixed CID 1292. If the allocation or adding to the list of the very first Buffer failed, the buffer data would be leaked. Note that for failure to allocate later buffers, the data is correctly freed in _FreeBuffers(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27459 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ad5756bf3d87901f4778f6ffbdd2b510ff32b0bf |
|
05-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Accidentally left some dirt when removing debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26262 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
|
#
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
|