Commit Graph

36748 Commits

Author SHA1 Message Date
Stephan Aßmus
8a7cbd8350 Always ignore found index entries after we detect
the stream is building the index on the fly once.
This allows to seek back to earlier positions, since
then the index will contain entries for later in the
stream and the logic to detect auto-generated indices
was broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 15:27:16 +00:00
Stephan Aßmus
7b61b6b8e4 Finally: Seeking audio in MKV files works when seeking the
muxer by the "default" stream. When I previously tried this,
I mistakenly remembered AV_TIME_BASE to be 1000, but it's
1000000, the same as the native bigtime_t time representation.
Luckily, we can still set all other streams (including the
"default" stream) to be discarded when obtaining chunks
packets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 15:13:24 +00:00
Stephan Aßmus
91debc877a Patch by diver, translating some yet untranslated strings.
Closes ticket . Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 14:35:43 +00:00
Stephan Aßmus
108f794c97 Patch by mt: Translate various yet untranslated strings in libtracker,
closes ticket . Thanks a bunch!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 14:30:20 +00:00
Stephan Aßmus
6936b3ba4f Added support for bz2 compressed stuff in Matroska containers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 13:57:33 +00:00
Stephan Aßmus
51802669a5 Fixed a warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 13:56:12 +00:00
Stephan Aßmus
b524af7e81 In case of time-out to generate a frame, leave the last
frame on-screen, instead of going black until catching up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 13:55:11 +00:00
Stephan Aßmus
a110536aac When the video is paused, use the left/right cursor keys
for single frame stepping instead of winding. One frame without
shift-modifier, five frames with shift held down.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 12:45:03 +00:00
Stephan Aßmus
892e4f21be * Changed the VideoSupplier interface to allow forcing the
video generation. This allows step back frame-wise even though
   it means the video has to seeked back far and re-generated more
   than five frames ahead to reach the seek frame.
 * Don't print dropped frames in the producer when the video
   is paused.
 * Don't lock the PlaybackManager to report dropped frames,
   report it later when the manager had to be locked anyway.
 * Removed a whole bunch of methods that were only implemened
   because of that old BeOS PPC compiler bug.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 12:43:41 +00:00
Stephan Aßmus
b80311be97 Only seek to keyframes when the difference in frames
is more than 5 frames.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 12:39:51 +00:00
Stephan Aßmus
6edc3b4193 Code simplification and a commont on why fOurBuffers is
maintained as member variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 12:38:41 +00:00
Stephan Aßmus
89f25d71bf Enabled the code which sets the consumer run-mode based
on the current play back mode. I.e. paused or stopped
playback get's B_OFFLINE run-mode, which makes sure the
Consumer does not drop frames when they are too late.
When single stepping frames backwards, the producer may
have needed a lot of time to generate a frame and it may
arrive late, which is no problem when the video is paused.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 12:37:45 +00:00
Stephan Aßmus
280a22fdec Removed no longer useful debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38666 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 12:36:11 +00:00
Scott McCreary
beb4fe7528 Updated BeAE and added a gcc4 build.
Added BurnItNow, both a gcc2 and gcc4 build.
Added Bazaar, both a gcc2 and gcc4 build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 02:34:38 +00:00
Stephan Aßmus
05e6afd6ea Always wait for buffers in AudioProducer::_FillNextBuffer().
Seems to work around a problem in the system mixer. When it
happens once that the AudioProducer does not send a buffer,
then it can eventually lead to a drop into the debugger
from BBuffer::SetHeader(), which to me looks like the BMediaEventLooper
thread of the mixer still runs when the System Mixer has been
shut down, which itself is yet another problem. I shall
investigate, but for the time being, one should enjoy a more
stable media_addon_server life-time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-15 22:23:50 +00:00
Stephan Aßmus
8eb72c7217 Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-15 19:58:48 +00:00
Stephan Aßmus
f7eb8be930 * Instead of using some bogus latency for the VideoProducer,
compute the latency from the buffer count. It should be
   the duration of in-flight buffers (i.e. number of buffers
   minus the one currently showing).
 * Compute the wakeUp time based on the buffer latency used
   above.
 * Make the "wasCached" mechanism work again, i.e. don't send
   the buffer to the consumer if the contents did not change.
   This removes the need to cache frames in the ProxyVideoSupplier
   and thus one more memcpy() (5ms on my Q6600 for full-HD content).
 * Remove the weird forceSendingBuffer override and the setting
   of the header starttime to 0. Now seeking clips works also
   when the playback is paused.

All in all, playback is more efficient now, and the chances of
dropping frames are much less. Something is still fishy, though,
since VLC, even though seemingly using slightly more CPU, drops
frames more seldomly than MediaPlayer. Audio/Video sync seems to
be better, though, since the VideoProducer is using a more accurate
latency now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-15 18:15:20 +00:00
Stephan Aßmus
6eac6bdea9 * fMyLatency (stupid name) had an arbitrary bogus value,
it should be more like the scheduling latency, if anything.
 * fBufferMap contained uint32 values, instead of simply the
   BBuffer pointers.
 * fBufferMap was initialized in a very complicated way,
   simply use the BBuffer pointer returned from
   fBuffers->AddBuffer().
 * Removed methods which were only implemented because of a
   Codewarrior compiler bug.
 * Renamed fTargetBufferIndex to fLastBufferIndex, since it's
   the index of the last used BBuffer from fBufferMap, which
   needs to be recycled when the next buffer is received.
 * SetOutputBuffersFor() never worked (making the producer
   use the consumer buffer group), since it was passed the
   never initialized fDestination. Use fIn.destination.
 * But using our own buffer group did not yet work, since
   apparently the BBuffer pointers cannot be compared like
   the code did (no idea if it ever worked on BeOS).
   Compare the ID()s instead, which makes it finally work to
   save an unnecessary memcpy(). Interestingly, one can
   call Recycle() on the "wrong" BBuffer pointer and buffers
   still get recycled correctly.
 * Refactored methods _UnsetTargetBuffer() and _HandleBuffer().
 * Maintain the performance start time, may come in handy later.
 * Changed code that checks lateness or earliness of buffers.
   In case a buffer is early, simply wait.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-15 17:49:47 +00:00
Stephan Aßmus
a0e92900de Pulse() may run twice before receiving the next
data, so we should prevent showing a current
peak of 0. Fixes the periodic 0 peaks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-15 17:37:41 +00:00
Stephan Aßmus
2baccbd9fb Fix retrieving the frame rate for real. Apparently
it can be any of these values, hope the priority is right.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-15 16:32:44 +00:00
Stephan Aßmus
31879da81c Use the correct field of the AVStream for the video
frame rate (perhaps it changed in 0.6?). This fixes
playback of several MP4 clips I have for testing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-15 08:35:47 +00:00
Clemens Zeidler
caefa86759 Fix highlighting of the tiling parents.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-15 05:24:54 +00:00
Clemens Zeidler
c5771bad6d Fix , don't try to load a lib which not exist.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 23:33:09 +00:00
Stephan Aßmus
3975779fc2 Use the exact time the event was supposed to fire,
not the current real time. If I understand things
correctly, using the mechanism to send a MessageEvent
is just there to invoke SetPerformanceTime() within
the PlaybackManager BLooper (I could be mistaken).
Need to check whether this fixes a drift in audio
and video I am often observing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 20:18:34 +00:00
Stephan Aßmus
5aaa020871 The max time to take for rendering is arbitrary,
might as well take an even value.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 20:16:26 +00:00
Stephan Aßmus
c3f9ae128a Set the processing latency using the time it
took to decode the last frame.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 20:15:10 +00:00
Stephan Aßmus
449c016b46 Small coding style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 20:14:04 +00:00
Stephan Aßmus
5a6b18e914 * Print the performance stats every five frames, and reset
the counters, so it's not the average for the entire
   decoding time, but for the last five frames. This gives
   a more accurate picture of what's going on.
 * Added NOTE about possibly removing the SWS version of the
   colorspace conversion code unless it's used for otherwise
   unsupported conversions. David's code is about 40% faster
   in my tests (nice job!).
 * Free the sws context in NegotiateVideoFormat, if necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 18:43:58 +00:00
Oliver Tappe
338ddd836f Closing :
* add missing getsubopt() POSIX-function
* added corresponding test


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 18:43:24 +00:00
Stephan Aßmus
d21b55880b For full HD clips, the real-time memory chunk cache
was not big enough. Axel, perhaps another solution is
better? Would you prefer the chunk cache to fall-back
to regular memory and keep track of allocation type?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 18:37:37 +00:00
Alex Wilson
361babfb26 Update ICO Translator to use the Layout API. Fixes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 18:22:14 +00:00
Rene Gollent
814fddc8bf Patch by diver: increase the size of the buffer used to format the partition size, since it's insufficient for some languages. Resolves . Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 12:51:05 +00:00
Stephan Aßmus
5021eb2421 Removed the "native" ogg, vorbis, theora and speex plugins in favor
of support for these codecs and demuxer in the FFmpeg plugin. The
ogg test streams I downloaded play fine now. For example, Big Buck Bunny
would play without video before and ogg files natively encoded with the
FFmpeg plugin wouldn't play at all. Since the removed plugins were not
maintained and were based on external libs themselves, I didn't see the
point in keeping them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 12:32:04 +00:00
Stephan Aßmus
594039f10d Imported libspeex 1.2rc1 for use in libavcodec's libspeexdec.c.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 12:24:09 +00:00
Stephan Aßmus
b98aa3ef8b Removed left-over debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 09:27:18 +00:00
Clemens Zeidler
727c8ba2c9 Improve min constraints and add max constraints, not perfect yet but much better then before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 05:23:05 +00:00
Clemens Zeidler
e16e4d4de1 Small optimization.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-14 05:11:15 +00:00
Stephan Aßmus
73e5249c79 * Enabled libvorbis and libtheora encoders in FFmpeg
* Enabled ogg muxer in MuxerTable.

ogg/vorbis creation successfully tested with MediaConverter.
ogg/theora needs more testing, it seems to work, but I need
to switch from the other vorbis/theora/ogg plugins to the
FFmpeg built-in support, otherwise the current theora stream
is not supported by the old plugin.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 20:25:24 +00:00
Stephan Aßmus
0640823932 Added libtheora 1.1.1 into FFmpeg folder as libtheora_ffmpeg.a
in order not to clash with the old libtheora in the theora plugin.
x86 CPU optimizations are only compiled for GCC4.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 20:23:08 +00:00
Stephan Aßmus
d45314ec30 Added libvorbis 1.3.1 into FFmpeg plugin folder. Target name is libvorbis_ffmpeg.a
in order not to clash with the old libvorbis in the vorbis plugin. I plan to remove
that one after I've done more testing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 20:21:08 +00:00
Stephan Aßmus
611ab2d824 Added libogg 1.2.0 into FFmpeg plugin folder.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 20:18:06 +00:00
Siarzhuk Zharski
2bb7bcd945 Russian localization update. Patch was provided by Diver. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 19:35:54 +00:00
Stephan Aßmus
bc04b5141e Disable float_to_int16_interleave_sse2 in favor of
float_to_int16_interleave_sse, since it crashes for reasons
I would have no clue about. Fixes a few duplicated tickets,
which I'll have to sort out later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 18:27:49 +00:00
Stephan Aßmus
5393fabac1 Disable some annoying debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 16:19:07 +00:00
Stephan Aßmus
0b1bbe06ac Small coding style fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 16:02:52 +00:00
Philippe Houdoin
efe5db5572 Remove superfluous tab introduced in previous commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 14:51:53 +00:00
Philippe Houdoin
2f313958ce Patch by diver: selected font family is now check marked too.
Closes .
Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 14:19:41 +00:00
Philippe Houdoin
cf9f178538 Patch by diver: Localize the default Mail window title. Closes ticket .
Thanks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 13:37:01 +00:00
Philippe Houdoin
865b06a85b Patch by diver: "Add" button wasn't localizable. Closes ticket .
Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 13:28:01 +00:00
Niels Sascha Reedijk
d6c46e4651 Remove an obsolete file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-13 13:02:29 +00:00