36912 Commits

Author SHA1 Message Date
Stephan Aßmus
41457111ec * Try harder to seek somewhere and fall back to seeking
to the beginning of the stream by bytes, if all else
   fails.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38853 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38853
2010-09-29 15:20:12 +00:00
Stephan Aßmus
06d9236554 Enable H263 encoders.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38852 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38852
2010-09-29 15:18:30 +00:00
Stephan Aßmus
96590b5bf7 * Do no manually allocate the buffer for the
ByteIOContext. libavformat may reallocate it
   on demand, we need to use the matching allocation
   methods.
 * Init the ByteIOContext with the proper "write flag".
   This solves a busy loop when writing the trailer of
   MKV files, since the first buffer was initially skipped
   and the MKV muxer can not seek back in the stream
   where it wants.
 * Get rid of the fCalculatePTS member, and calculate
   PTS of audio packets as well. I don't remember why
   I prevented that, however VLC complains about audio
   packets having wrong PTS (with or without this change)
   Our own MediaPlayer plays videos generated by (a modified)
   Clockwerk at least once, but seeking subsequently fails.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38851 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38851
2010-09-29 15:17:35 +00:00
Stephan Aßmus
8218710526 Do not write an audio packet if the encoder has not produced
any encoded data yet. Fixes encoding of Vorbis audio.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38850 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38850
2010-09-29 15:11:28 +00:00
Philippe Houdoin
43821aaf68 Add auto-identified RealMedia movies (.rmvb) mime type.
Could help regarding the uber evil #6666 issue...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38849 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38849
2010-09-29 11:03:44 +00:00
Axel Dörfler
77b833b87e * Convert the CD-Text contents to UTF-8 (always assumes ISO-8859-1 for now).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38848 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38848
2010-09-29 10:33:04 +00:00
Stephan Aßmus
8be096e0f7 Fix codec initialization. The mpeg4 and h263 codecs were split,
and there is also ituh263enc.c, of which I am unsure how it
fits into the picture. However the mpeg4 encoder is using a "RL"
table of the h263 encoder, and it appears it was forgotten to
make sure it's initialized when splitting these files. Should
be upstreamed. Fixes a crash when trying to use the MPEG4 encoder.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38847 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38847
2010-09-29 10:07:14 +00:00
Philippe Houdoin
4cc17e8c78 Do the same for the JobSetupWindow and PrinterSetupWindow's Go()
methods too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38846 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38846
2010-09-29 09:54:22 +00:00
Philippe Houdoin
fd7d3a7d40 Cache the result value because after Quit() fResult member is no more available.
Should fix #6675.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38845 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38845
2010-09-29 09:48:09 +00:00
Axel Dörfler
24fb5ed32c * Initializing "id", and "track" to zero in r37310 caused a bug in read_cdtext()
to be revealed, as both variables were not supposed to change between calls
  to parse_pack_data(). This could cause an invalidation of the CD-text data,
  as well as an endless loop.
* Disabled (and improved) some more debug output.
* Added a short description to parse_pack_data().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38844 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38844
2010-09-29 09:47:36 +00:00
Axel Dörfler
0945b14311 * Made the "cdda_text" test application compile again.
* Improved error output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38843 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38843
2010-09-29 09:17:14 +00:00
Clemens Zeidler
5b6fca0639 - Rework the ALM layout api. The AddItemTo* function are now related to the current Area. On default the current Area is the last added Area.
- Add some more const where appreciated.
- Fix some style issues and a leak in Row and Column.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38842 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38842
2010-09-29 03:30:47 +00:00
Stephan Aßmus
e65a6eb2e0 * Give some options for subtitle placement and size.
* Optimize subtitle drawing when subtitles are to be
   displayed at screen bottom versus video bottom, and
   the subtitle frame does not intersect the video. In
   that case we only need to draw it when it changes
   (or is to be removed). Fixed the dead-lock problem
   in a nicer way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38841 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38841
2010-09-28 21:43:39 +00:00
Joachim Seemer
12d6d539c9 Padding in the FileType add-on window wasn't quite right yet... sorry about that.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38840 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38840
2010-09-28 18:38:37 +00:00
Joachim Seemer
dd4bcaaad6 Adjusted padding in the FileType add-on window. Fixes #6676.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38839 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38839
2010-09-28 18:24:49 +00:00
Axel Dörfler
144e57d8d7 * Empty structures behave differently in C vs. C++ (while they are 0 byte sized
in C, they are 1 byte sized in C++). The empty knlist is what broke the WLAN
  stuff in various ways since I renamed ieee80211_haiku.c to cpp.
* This fixes at least bug #6521.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38838 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38838
2010-09-28 17:41:05 +00:00
Stephan Aßmus
47e9b53fe4 Fix some coding style violations (case scope blocks get their
opening parenthesis on a new line & 80 chars/line limit).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38837 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38837
2010-09-28 17:32:20 +00:00
Stephan Aßmus
395346c411 Patch by Matthias: The residue field is not maintained
correctly by all USB devices, so calculate it instead.
Gets some USB disk devices working like the SuperTOP.
MacOS X is doing the same thing, as researched by Jérôme.
Closes ticket #6604. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38836 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38836
2010-09-28 17:30:15 +00:00
Philippe Houdoin
af3b61f013 Fixed a copy&paste typo in trace.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38835 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38835
2010-09-28 14:03:11 +00:00
Stephan Aßmus
a574c5ce13 For the time being, don't enable a shared BBufferGroup
in overlay mode. Added TODO, since it should be fixed
eventually. There seems to be a problem with mapping
the BBitmap area into a BBuffer (video stays black).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38834 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38834
2010-09-28 11:04:07 +00:00
Stephan Aßmus
01e0d3278a * Use asynchronous bitmap drawing in VideoView. Wouldn't matter much, though.
* In SubtitleBitmap, if we ever take too long to generate a subtitle bitmap
   with the drop-shadow, fall back to outline mode. The StackBlurFilter is
   extremely fast, though, so there isn't a huge difference. It can fix some
   jumps in the video when switching subtitles in fullscreen mode, though.
 * Introduce overlay mode to SubpixelBitmap. It uses the black outline then
   and disables font anti-aliasing (just for the outline).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38833 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38833
2010-09-28 10:57:54 +00:00
Philippe Houdoin
7fa49587bc Fix a bug in _UpdateList(), where the newest teams were not append at all due to
an out-of-range index passed to AddItem().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38832 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38832
2010-09-28 10:36:40 +00:00
Stephan Aßmus
619ccfae94 * Removed a line of long-dead code.
* Make sure that turning off anti-aliased font rendering
   also works when subpixel-anti-aliasing is used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38831 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38831
2010-09-28 10:33:51 +00:00
Stephan Aßmus
424c4f3bdf Fixed dead-lock when seeking with the video paused. Should come
up with something better...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38830 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38830
2010-09-27 20:44:17 +00:00
Stephan Aßmus
ec646de243 Coding style fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38829 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38829
2010-09-27 20:43:31 +00:00
Axel Dörfler
5c76afb025 * We need to ignore the result of update_capacity() in cd_init_device(), or else
one cannot open the device anymore if no media is present - this did also let
  the disk device manager ignore CD-ROMs in case there was no media present
  during boot. This fixes bug #6130.
* Disabled debug output again.
* Fixed missing newline in debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38828 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38828
2010-09-27 17:16:46 +00:00
Stephan Aßmus
c8ccdf5203 * Added basic support for SRT subtitle files. It only works
if the SRT file is placed alongside the current playlist
   item under the same name (sans extension). The name of the
   language is taken from the file which needs to be separated
   by a dot (should be improved).
 * Instead of the black outline, subtitles have a nice drop
   shadow now, which is easier on the eyes somehow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38827 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38827
2010-09-27 15:26:41 +00:00
Stephan Aßmus
4ad39ed76d * Improve clarity of some code.
* Preserve transparency of default color when color
   changes via tag.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38826 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38826
2010-09-27 09:43:55 +00:00
Rene Gollent
f6d6a61645 Work around gcc2 limitation to fix build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38825 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38825
2010-09-26 22:13:25 +00:00
Stephan Aßmus
ed74106bcb * Added more comments to the code.
* Cleanup ParseStates in case the input didn't have
   all closing tags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38824 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38824
2010-09-26 20:32:38 +00:00
Stephan Aßmus
676c1e9694 Let client applications set a DrawingMode() which will be the
default drawing mode for text rendering. Don't override it
with B_OP_COPY (still the default). Should not have any
consequences in any existing use-case. The MediaPlayer can
use BTextViews to render semi-transparent subtitles this way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38823 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38823
2010-09-26 20:25:57 +00:00
Stephan Aßmus
25fb0e67fd Added SubtitleBitmap class which can create a transparent
BBitmap from a subtitle line as found in SRT files. It
supports all tags except positioning (should probably be
handled in upper layers anyway). The parsing is simplistic
but should be robust. The layout of text is handled by an
offsreen BTextView. VideoView can be given a subtitle
string.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38822 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38822
2010-09-26 20:24:04 +00:00
Stephan Aßmus
dce7934b8d Added support for one more non video/audio MIME type.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38821 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38821
2010-09-26 20:21:28 +00:00
Scott McCreary
36f8666256 Removed make and mkdepend source files, and removed them from the Jamfile. These are now available as OptionalPackages grouped in DevelopmentBase
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38820 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38820
2010-09-26 17:02:16 +00:00
Matt Madia
0a53d94bd5 Introduced a new variable HAIKU_CATALOGS_OBJECT_DIR. The catkeys and catalogs
are stored in signature-based subdirectories. This improves upon r37871 and
should allow BOM to properly harvest catkeys for online translation tools.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38819 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38819
2010-09-26 16:55:06 +00:00
Scott McCreary
842b416b9b Update netsurf to 2.6, added libmng as a dependency for netsurf.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38818 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38818
2010-09-26 16:26:55 +00:00
Matt Madia
413a591c78 80-char clean up. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38817 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38817
2010-09-26 16:21:14 +00:00
Stephan Aßmus
a58469f56e Allow to set the false bold width in BTextView style runs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38816 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38816
2010-09-26 12:49:57 +00:00
Stephan Aßmus
b6d5916a70 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
hrev38815
2010-09-26 09:52:20 +00:00
Stephan Aßmus
749df748eb Propagate the error from CreateBuffers() in Connected().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38814 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38814
2010-09-26 09:45:07 +00:00
Scott McCreary
5722edeb67 Moved make and mkdepend to OptionalPackages, updated libtool to 2.4.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38813 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38813
2010-09-25 16:21:22 +00:00
Stephan Aßmus
cc3a891e38 Only claim specific support for multi-media file types that
don't belong to the audio or video super type. All other files
should now open automatically with MediaPlayer since r38810
even without it claiming direct support for them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38812 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38812
2010-09-25 14:50:18 +00:00
Stephan Aßmus
a4b60639b1 Patch by plfiorini from ticket #4501. Untyped FLV movies
shall be auto-identified. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38811 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38811
2010-09-25 14:47:58 +00:00
Stephan Aßmus
08ac2a4987 I don't quite understand why the preferred handler of
the super type is only regarded for "installed" MIME types.
The comment says that uninstalled MIME types are assumed
to be application MIME types, but this is clearly not always
the case. Initializing the secondary signature regardless
fixes the problem that unkown document MIME types open in
a random application, even though their super type has a
preferred handler. If the type is indeed an application
itself, I suppose no harm is done, since the primary
signature takes precedence anyway. Closes ticket #4501.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38810 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38810
2010-09-25 14:43:25 +00:00
Siarzhuk Zharski
3b6fac7943 - yet another update of Russian locale files from Diver. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38809 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38809
2010-09-24 20:47:35 +00:00
Stephan Aßmus
73dcf86fdc * Don't create Stream cookies for unsupported media formats.
Some test clips with sub-title tracks would hang MediaPlayer
   without this fix here.
 * Optimize FindKeyFrame() and Seek(), check the range between
   last requested/reported frame and bail out early with the
   same result. Seems to fix MediaPlayer starting to drop frames
   when it got caught up in a keyframe finding party...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38808 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38808
2010-09-24 20:14:10 +00:00
Stephan Aßmus
af0f809b75 Rewrote finding keyframes and seeking. The problem was that
in many situations, FindKeyframe() was unable to reliably
predict what frame Seek() would be able to seek to.
 * Refactored a new base class StreamBase from the old
   StreamCookie, renamed StreamCookie to just Stream.
 * In FindKeyframe(), Stream will create a "ghost" StreamBase
   instance. That one will be used to actually seek in the
   stream without modifying the AVFormatContext of the real
   Stream. From that we can tell what position we can /really/
   seek to. For AVIs mostly, it is important to still use
   av_index_search_timestamp(), since for many AVIs I tested,
   reading the next packet after seeking did not produce a
   timestamp, however the index entry contained just the correct
   one. If the next packet does contain a PTS, it will still
   override the index timestamp, though.
 * Contrary to my previous belief, there was still a locking
   problem with how MediaPlayer used the BMediaTracks. The video
   decoding thread and the playback manager both used
   FindKeyframe() without holding the same lock. We support this
   now by using one BLocker per Stream. (The source BDataIO is
   still protected by another single lock.) With the new ghost
   stream stuff, the locking problem became much more of a problem,
   previously the FindKeyframe() had a much rarer race condition
   which would only trip when the decoding thread would cause new
   index entries to be inserted into the index.
 * Use the same ByteIOContext buffer size that avformat would be
   using if it initialized the ByteIOContext through other API.
 * Don't leak the probe buffer in case of error.
 * Don't leak the ByteIOContext buffer in the end.
 * Do not discard other stream packets anymore, this makes the
   ASF demuxer happy and ASF files can now be seeked as well as
   with ffplay itself.

With these changes, all my MPEG test streams work. Some could be seeked
before, but would show bad artifacts. Some streams would completely loose
video after seeking once. My MPEG2 test stream works much better now,
although audio is slightly out of sync, unfortunately. All my test AVIs
work as good as before, MP4 and MKV still work perfectly. The single
test ASF I got is now perfectly seekable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38807 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38807
2010-09-24 16:54:42 +00:00
Stephan Aßmus
954d70d8c0 * Renamed fAudioTempPacket to fTempPacket and use it for calling
the new video decoding function. This just avoids a warning
   generated from the libavcodec sources. The function used before
   did the exact same thing...
 * Maintain fStartTime correctly in _DecodeVideo(). Don't overwrite
   it with a calculated starttime in Decode(). This will allow drift
   to bubble up to the higher layers.
 * Do not use the previously required hack to close and reopen the
   AVCodec after seeking. avcodec_flush_buffers() seems to work
   fine now, and for certain stream types (MPEG1, MPEG2 video for
   example) the keyframe is correctly used after seeking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38806 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38806
2010-09-24 16:40:56 +00:00
Stephan Aßmus
a92abad742 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
hrev38805
2010-09-24 16:35:11 +00:00
Clemens Zeidler
030345058e Handle layout items like glue correct. Update the preferred size constraint if a tab has been replaced. Fix coding style (thanks Axel).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38804 a95241bf-73f2-0310-859d-f6bbb57e9c96
hrev38804
2010-09-24 03:22:37 +00:00