Commit Graph

37123 Commits

Author SHA1 Message Date
Oliver Tappe
6a5dacaa3c part1 of fixing #6599:
* protect against invocations of ctype-macros/-functions with negative
  character indices by mirroring the corresponding values at negative
  array indices (the legal access range of __ctype_b is now [-128..255])


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 15:55:42 +00:00
Oliver Tappe
4a0b7d1bd0 * don't try to check __isctype((char)255), as it will clash with
neutral/identity value at -1 (EOF)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 15:51:37 +00:00
Stephan Aßmus
6df16a01ed * Seeking by bytes works mostly correctly now. In some
mpgs, the video does not recover, though.
 * Remember the last reported keyframe information, so we
   avoid rounding artifacts. Not as effective, since we
   cannot use stream time-base for seeking, but have to use
   it for finding the keyframes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 15:11:50 +00:00
Stephan Aßmus
2e54e93fbf Finall changed the Seek() method of Decoder plug-ins to
SeekedTo(), since it's only informative to decoders. They
can't modify the seeked frame/time. This also mirrors what
all existing decoders were doing in Seek(). BMediaTrack
is simplified accordingly (resolved two TODOs).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 14:44:22 +00:00
Oliver Tappe
611e1071a7 * add ctype-related tests that expose the cause of #6599
* fix warnings

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 14:31:13 +00:00
Jérôme Duval
86bec4a995 updated libtiff to 3.9.4
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 12:01:26 +00:00
Jérôme Duval
2ae952521b updated libpng to 1.4.3
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 11:22:54 +00:00
Fredrik Holmqvist
1f2f3e8c8f Fix for gcc2 hopefully, only have gcc4 here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 10:07:08 +00:00
Fredrik Holmqvist
8f29d08eba Perhaps telling ACPI that we are in PIC mode might temporarily remedy a few of the irq-related issues.
(This is just until we do proper irq-handling)

On my machines it works either way so I'd like to get feedback on this.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 08:58:58 +00:00
Alexandre Deckner
9377675061 * Fix extra space typo in the mount settings alert. Spoted by Diver, thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-18 00:49:33 +00:00
Matt Madia
19b7ba00f6 Added the University of Auckland and Christof Lutteroth to the 'Special thanks'
section of AboutSystem, for their efforts in developing and bringing Stack and
Tile to Haiku. Thank you!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 20:24:12 +00:00
Rene Gollent
4f9892e0f8 Build fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 18:21:54 +00:00
Alexandre Deckner
7b80b5d518 * Use multiple translate contexts in Tracker for easier translation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 16:28:10 +00:00
Joachim Seemer
534a3a24cd Updating userguide and welcome page and their translations. Thanks everyone.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 13:28:39 +00:00
Joachim Seemer
b765872549 Applied diver's patch to Localize 'Shell' tab title. Fixes #6607. Thanks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 13:17:12 +00:00
Stephan Aßmus
5bacae95fe Make use of the new meta-data API and display the
audio track menu item label as the language of the
track.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 08:33:25 +00:00
Stephan Aßmus
d174a87e1b If we still have our own BBufferGroup separate from
the used BBufferGroup (from consumer), make sure to
delete that one as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 08:32:27 +00:00
Stephan Aßmus
3c0f00c5ec * Theoretically implemented seeking by bytes,
if the input format requires it. Practically,
   it does not work.
 * Implement the new meta-data API.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 08:06:55 +00:00
Stephan Aßmus
7cd3a2490b Implemented an API to get arbitrary meta-data about
BMediaFiles and about BMediaTracks in BMessages. As an
example, one can get chapter meta-data or the language
name of an audio-track.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 08:04:26 +00:00
Stephan Aßmus
cefc9ef227 Corrected debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 08:02:41 +00:00
Clemens Zeidler
d256161aec Calculate a better size limit in a stacking group.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 05:46:13 +00:00
Clemens Zeidler
dcbc4af5d1 - Add size limit changes to the listener interface.
- Update size limit constraints in S&T only if necessary.
- Header style fixes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 04:04:02 +00:00
Clemens Zeidler
d2cf4da51f Fix min/max size calculation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-17 01:10:13 +00:00
Clemens Zeidler
5733bbb94b If the constraints are infeasible don't move the windows because the target positions are not valid. Partially fix #6631.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 22:02:17 +00:00
Alexandre Deckner
ad76f4439f * Build fix, see ticket 6374
* 80 char limit fix



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-16 16:36:56 +00:00
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 #6609. 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 #6374. 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 #6605, 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