Commit Graph

1061 Commits

Author SHA1 Message Date
Stephan Aßmus
fae87f406e Make CpuCapabilities.h self-contained and thereby fix the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-07 12:12:07 +00:00
Stephan Aßmus
86358cb106 * Hopefully fixed the PPC build.
* Fixed coding style issues.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-07 11:22:02 +00:00
Stephan Aßmus
20d496c56c ff_x264_deblock_v8_luma_intra_mmxext is GPL and needs to be wrapped
in a CONFIG_GPL #ifdef (should be upstreamed, actually). This fixes
the GCC2 build (and probably GCC4) if the Haiku build is not configured
to include GPL add-ons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-07 11:15:48 +00:00
Stephan Aßmus
5e7287f481 Enable run-time CPU detection. I didn't yet test this
on an older CPU.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-07 11:11:51 +00:00
Stephan Aßmus
6c49058008 yuv2rgb_mmx.c will now include other files depending on whether
GPL code is enabled or not. We need to build it in either case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-07 11:10:57 +00:00
Stephan Aßmus
6f76655240 Fixed build with tracing enabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-07 11:09:48 +00:00
Stephan Aßmus
d29fcc50b8 Switched support for AVI files from native Reader to
FFmpeg plugin, which now works for much more files
in my testings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-06 21:23:39 +00:00
Stephan Aßmus
f2d6b67836 Disable some MMX accelerated functions on the GCC2 build, those
had been patched in the older ffmpeg version as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-06 21:14:22 +00:00
Stephan Aßmus
fb0c01f4d9 GCC2 was seeing the wrong "internal.h" header. That's what you get for not
using vendor branches properly... I remember having to make this change
before... GCC2 build goes much further now, investigating next problem.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-06 21:06:28 +00:00
Stephan Aßmus
8887a47ded Upgraded FFmpeg to the release version 0.6 (only some minor compile fixes to the code
with regards to using the wrong #include scope in one file and disabling two
apparently unmaintained asserts when compiling in DEBUG mode). I didn't yet test
the GCC 2 build, but I need to get this into SVN since I am having some annoying
file corruption troubles. In fact I am hoping I am not commiting broken files,
but a few seconds ago everything was still building cleanly. One thing that definitely
improved is the (disabled at the moment) AVI support. Every clip I tested so far
plays, which can't be said about our native AVI reader. With the previous FFmpeg
version (a random SVN revision is my guess), many old AVIs played completely broken.
So far, I have not spotted any regressions


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-06 19:01:50 +00:00
Stephan Aßmus
af4608b687 Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-06 18:45:48 +00:00
Stephan Aßmus
1fc294b86a * Do not use an I/O buffer which is allocated with a StreamCookie
object. Demuxers may actually resize the I/O context buffer,
   which would corrupt memory. This is certainly the case in FFmpeg
   0.6, don't know if it was a problem before.
 * Do not set the time to the packet PTS in Seek(), if it's the magic
   value for "no PTS".
 * Don't regard the AVInputFormat flags (generic index), we can detect
   this more reliably by the observed behavior: Don't trust the found
   keyframe if we are obvioulsy building the keyframe index on the fly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-06 18:45:05 +00:00
Stephan Aßmus
9abb7d4713 Remove the Matroska reader from the image and enable
Matroska support in the FFmpeg plugin. I have a few streams
to test with, most didn't play right with the Matroska reader,
many simply crash. With the FFmpeg matroska support, most files
do play fine. Seeking the audio stream is a problem, in that
the FFmpeg code does not build the index for the audio stream,
and so seeking always falls back to regions of the file that
have already played. The audio will catch up eventually and
playback will be fine again. A minority of files I could test
with don't work right, those seem all to be older files.
Overall, the support for Matroska files has much improved
with this commit. I am still investigating why FFplay has
no trouble seeking in mkv files, while the FFmpeg plugin only
seeks perfectly in video streams. It may be a problem that
the FFmpeg plugin uses completely separate AVFormatContexts
for each stream, which on the other hand allows to seek BMediaTracks
independently from each other and resolves concurrency issues.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38541 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-06 09:50:24 +00:00
Stephan Aßmus
3e9336fd20 * Small coding style fixes and improved naming
of the thread related methods.
 * Explicitely reset the fThread member in
   _StopOutputThread().
 * Added TODO about the somewhat seemingly fragile method
   to ensure the previous buffer for a channel has
   been processed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-04 10:41:12 +00:00
Stephan Aßmus
b79d094ee0 With many AC3 streams in AVIs I have, the FFmpeg AC3 codec
crashes. In some MKVs I have, the FFmpeg implementation
behaves badly when the stream switches from stereo to 6-channel
(weird, but can apparently happen). So simply don't claim
support for AC3, since we have a "native" AC3 decoder which
works much better.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-03 12:16:21 +00:00
Stephan Aßmus
dc24f85691 Use rounding to avoid the situation, that FindKeyFrame()
returns a frame, and using that very same frame again
for FindKeyFrame() returns a different frame, because
the rounding effects have converted the time to be smaller
than the timestamp that was found for the first call to
FindKeyFrame(). It still happens sometimes, but a lot less
frequently. Ideas appreciated. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38504 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-01 21:39:04 +00:00
Stephan Aßmus
1a2e8aeeaf Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-01 17:53:00 +00:00
Stephan Aßmus
b4560be299 * Found two more places where _ConvertFromStreamTimeBase()
could be used.
 * Finding keyframes is unreliable. Sometimes the index
   is built on the fly, without us knowing. The file will
   become seekable after we have decoded those parts.
   This however means that seeking may not have been successful.
   To know the seeked to frame, we extract the next packet
   and returned the true current frame in the in/out arguments
   to seek.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38497 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-01 15:58:22 +00:00
Stephan Aßmus
b4a9b7c236 * Actually use the client suggested buffer size.
* When the client didn't suggest it, take the sample
   size into account.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38494 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-01 14:51:37 +00:00
Stephan Aßmus
2c1e15255e * Initialize the channel mask of the media_format.
* Enabled the DTS decoder. The codec tag is fake,
   but as long as Readers use this, it will work.
   Currently only works with the FFmpeg reader, though,
   and I tested only with matroska containers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38493 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-01 14:50:43 +00:00
Stephan Aßmus
b006bbe130 * Resolved TODO and implemented updating resampling implementation on the fly.
* Reordered some methods in the source to align with declaration order.
 * Applied naming conventions for private methods.
 * Switched asterix style in MixerInput.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-01 09:09:10 +00:00
Stephan Aßmus
a79b30c3b6 * In the MixerInput, also use the Linear resampler if requested by the
settings. (There is a common "mixing frame rate" to which all inputs
   resample, before the MixerCore resamples to the frame rate of the
   output.)
 * Some more coding style fixes in MixerCore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-31 16:07:52 +00:00
Stephan Aßmus
eb01f516a3 The CodecID for raw-audio actually depends on the sample format
and can't be hard-coded in the EncoderTable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 21:04:29 +00:00
Stephan Aßmus
b543dbc293 Honor 80 chars/line limit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 13:02:48 +00:00
Stephan Aßmus
a6e0f877c3 Print the debug output only for the first channel,
more channels don't add more information.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 13:01:44 +00:00
Stephan Aßmus
4cc71346c4 Fixed more coding style violations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 11:36:02 +00:00
Stephan Aßmus
cb7b1a3cee Fixed DEBUG build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 11:29:26 +00:00
Stephan Aßmus
c21a83bb46 A few more coding style fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 10:21:25 +00:00
Stephan Aßmus
0960b6d0f1 Fixed more coding style errors.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 10:20:05 +00:00
Stephan Aßmus
e9a09f6670 * Enabled the mp2/mp3 decoder in the ffmpeg plug-in (CodecTable.h).
* Removed the mp3_reader and mp3_decoder from the image and from
   the source tree even. The mpeg123lib based decoder was crashy,
   since the lib didn't cope with bad input data too well, whatever
   the reason, but bad input can also be a specially crafted file.
   I didn't see the value in keeping two decoders around that use
   a third party library as backend. While reading in the mp3_decoder
   code, I even saw that it used global variables in the mpeg123 lib
   to figure out framerate and channel count, after decoding a bit of
   input. Obviously this has concurrency issues.
 * Removed the mp4_reader from the image. It is native code, and should
   perhaps be preferred over imported code, but I don't have the
   resources to look into it, and David doesn't seem to have the time
   either. There are basically three types of problems with the
   native mp4 reader: 1) It is way too CPU intensive. I have many HD
   files that don't play at all, since there is not enough time left
   for actual decoding. 2) Seeking leaves a lot of visual artifacts
   (with the very same decoder plug-in), since there seems something
   wrong either with finding true keyframes, or with flushing buffers
   correctly. And 3) very often audio stops working at all after
   seeking. Sometimes a keyframe is returned for audio which is very
   far away from the wanted frame, which currently triggers bad
   behavior in the audio producer node in MediaPlayer and can even
   crash the media_addon_server. With the ffmpeg based mp4 reader,
   none of these problems exist: Seeking is perfect, no artifacts,
   CPU load is low enough for pretty much all HD clips I tested with,
   and audio always works and is always in perfect sync with the video
   after seeking.

If there are regressions after this commit at all (I tested a lot of
files), then I anticipate only that the ffmpeg plugin does not advertise
support for files it could actually handle (i.e. easily fixable). In
those cases hopefully a test stream can be made available. If the
native mp4 reader is improved to the point that it works as well as
the ffmpeg mp4 demuxer, we can easily switch it back, but for now, users
will prefer reliable playback.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 17:16:00 +00:00
Stephan Aßmus
22ce5d9517 * Optionally separate tracing output for FindKeyFrame().
* Output more information in AVFormatReader::StreamCookie::Open(),
   AVInputFormat flags for example.
 * Added CODEC_ID_AAC handling when codecTag is 0. Adds support
   for AAC in Matroska containers when the ffmpeg plugin is enabled
   to handle those.
 * Added some rounding to frame<->time conversions.
 * AVFormatReader::StreamCookie::Seek() forgot to pass the seek
   flags to av_seek_frame().
 * The most important fix is this, though: There are formats which
   build the keyframe index on the fly, while parsing the stream!!
   These means we can only seek to real keyframes for parts of the
   stream that has already been decoded. Handle this situation by
   assuming we can seek to the requested frame/time. This change
   fixes the use of the AVFormatReader as MP3 reader.
 * Anothe important fix is to ignore the nb_frames member of the
   stream for the total frame count. This makes MP4 movies
   also work perfectly now when the AVFormatReader is used for them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 13:29:52 +00:00
Stephan Aßmus
d5479a3bd0 * Use the new avcodec_decode_audio3() call, avcodec_decode_audio2()
gives the deprecated warning... We need to cache an AVPacket for this.
 * Check the allocation of fOutputBuffer.
 * When seeking, we need to flush the already decoded stuff
   in fOutputBuffer, and throw away the last chunk buffer as well.
 * Handle an incomplete input format at least to the point of not
   crashing with a divide error (mp3_reader would give us such an
   incomplete format for example).
 * _DecodeAudio():
   - Fixed some edge cases in the audio decoding loop: avcodec_decode_audio3()
     can return a 0 length, which means no error, but no decoded frames
     either. ffplay throws away the chunk in this case, do the same.
  - Convert some invalid situations that were printf()s into debugger()s.
  - Add much more comments to explain how everything works.
 * Fixed the occasional coding style issue.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 13:21:03 +00:00
Stephan Aßmus
ff1679bee8 * Improved some comments.
* When writing encoded audio, we were leaking one
   temporary buffer per chunk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:32:18 +00:00
Stephan Aßmus
303ecf89ec There was some bogus code in the Seek and FindKeyframe methods:
First B_MEDIA_SEEK_TO_FRAME was handled to compute a time, then
it was ignored and frame was used as time stamp. Also the
conversion from frame to time had the num and den members of
the time base swapped in the computation, so it computed
bogus time stamps. Refactored the conversion methods, always
seek based on the time. Needs more testing (perhaps there are rounding
issues), but overriding a lot of native reader implementations with
AVFormatReader holds up very well now with a lot of files I tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-24 13:57:40 +00:00
Adrien Destugues
c3d88d5160 Fix clang build. modf is not good for optimizations it seems
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-13 19:45:54 +00:00
Adrien Destugues
77fa0021d9 Enable the "interpolate" resampling method. Results are not as good as I expected, however.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38066 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-12 17:12:00 +00:00
Adrien Destugues
ff617a11dd * Add a resampler that interpolates instead of dropping/copying samples.
* Not plugged anywhere yet.
 * I'm not sure the downsampling is done properly, either.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-12 10:18:38 +00:00
Jérôme Duval
db6f1135a6 CID 1418: fInputByteSwap was leaked.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-08 00:00:54 +00:00
Jérôme Duval
3d8f229273 CID 1390: buf was leaked in case of error.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-07 23:30:35 +00:00
Stephan Aßmus
ba0f80c46b * Split debug output into general, audio and video (video output not done).
* Set the AVContext->frame_size, though I don't think it has any effect.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-23 09:16:18 +00:00
Stephan Aßmus
5061b3521f Patch by Adek336: Support one more H264 fourcc in B_QUICKTIME_FORMAT_FAMILY.
Allows playback of H264 content in Flash container (probably among others).
Thanks! Closes #6372.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-23 08:27:37 +00:00
Stephan Aßmus
4117556768 Patch by Adek336: Improve debug output in AVFormatReader for the codec id
returned by libavformat. Style fix by myself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-23 08:25:45 +00:00
Stephan Aßmus
df2945b3c5 "-O20" GCC flags should have been bogus. As far as I know, we are already
compiling with "-O2". Fixes ticket #6303.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-22 07:15:59 +00:00
Oliver Tappe
0ea1aab28a * fixed a couple of regressions of r37670 concerning optional build targets
(bluetooth, ac3_decoder, netfs)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-21 23:10:57 +00:00
Oliver Tappe
eddec292d5 * applied patch by kaliber that fixes more than 100 warnings - thanks a lot!
Closes #6349

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-21 21:43:20 +00:00
Jérôme Duval
7a87728eea added yuy2 and nv12 guid
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-11 12:00:06 +00:00
David McPaul
651dcdac93 Same fix needed as mp3_decoder see r37362 and bug #6251
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-04 13:36:28 +00:00
David McPaul
affec393bc Update to latest libasf (r107)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-03 06:12:56 +00:00
David McPaul
a775c1a432 Correct test. Fixes bug #6251
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-03 06:11:39 +00:00
Wim van der Meer
f52d672815 Compiler warning and code style fixes. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-27 08:40:54 +00:00
Wim van der Meer
23c0ae0362 Compiler warning fixes and code style cleanup. No Functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-27 03:02:48 +00:00
Wim van der Meer
27a54cf005 Compiler warning fix and code style cleanup. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-25 14:27:20 +00:00
David McPaul
7436ac49e5 Code Cleanup, Performance improvements, Seeking Improvements. Audio Seek still not quite right though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-18 09:16:05 +00:00
David McPaul
c436ab319d gcc4 fixes and add removal of buffer when source disconnected
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-25 09:06:26 +00:00
David McPaul
a3d9c49a18 Use the alpha from the source
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-24 09:43:24 +00:00
David McPaul
8391490adc make the block more dynamic
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-24 09:42:33 +00:00
David McPaul
e615fd4dda add video_mixer to Jamfile
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36894 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-22 05:29:29 +00:00
David McPaul
0fe9fd368f Start of a video mixer node
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36893 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-22 05:27:49 +00:00
David McPaul
da4fcd47f5 Try to use overlay first
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-22 05:27:15 +00:00
David McPaul
dc706a1b49 additional option to display a color block
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-22 05:25:32 +00:00
Ingo Weinhold
5023986b41 USBWebcamHeaderGen rule: Add grist to both header and sources. Simplifies the
invocation and fixes the dependency problem (missing grist on the sources)
that caused the headers not to be regenerated when the sources changed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-20 19:01:18 +00:00
Stephan Aßmus
941e7bddbc Patch by herdemir: Fix codec table to include correct fourcc for H.264 video
streams in AVI files. Could confirm this with a test video. Thanks and sorry
for the delay!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-17 16:27:25 +00:00
Stephan Aßmus
1b603b3f39 Implement a fall-back for calculating the media_header start time when the
packet did not specify a PTS. Made this change long ago, I don't believe it
helped much...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-17 16:22:41 +00:00
Stephan Aßmus
e2a53a81d1 White space cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-17 16:18:39 +00:00
Stephan Aßmus
be1140e1e5 Added some more defines for demuxers that could in theory be enabled. But we
have native implementations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-17 16:17:06 +00:00
François Revol
7a2f989819 Make sure native drivers are loaded first, by openning the /dev directories to let devfs scan them. Also make sure oss is loaded so we can open /dev/sndstat.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-08 22:36:37 +00:00
Jérôme Duval
cea369ce9d UVC webcam addon isn't ready yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-08 14:51:02 +00:00
Axel Dörfler
2d4ce06468 * Changed the latency computation a bit to make it somewhat clearer.
* Only report lateness if it is beyond the accepted jitter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-12 21:51:40 +00:00
Axel Dörfler
d0085d25d1 * We now limit the maximum latency in MediaPlayer and the audio mixer, as a
latency can easily get annoying if too high.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-12 20:53:15 +00:00
Jérôme Duval
02af02f93a partial clean up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-12 20:34:04 +00:00
Jérôme Duval
ac8b5878d7 clean up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-12 20:13:40 +00:00
Axel Dörfler
b289aaf66b * A BBuffer does not know where it came from, so
BBufferConsumer::BufferReceived() cannot know whom to send the "buffer is
  late" notification (unless we only have a single input). To solve this, the
  media_header now contains extra fields that can be used to create a
  media_source object.
* Unfortunately, BBufferProducer::SendBuffer() cannot know the output either in
  case there is more than one. Hence, I deprecated the existing SendBuffer()
  call and moved it into "private" - IOW old sources using it won't compile
  anymore under Haiku.
* I introduced a new SendBuffer() variant that also gets the media_source as
  argument.
* Updated all sources (that are part of the image) to use the new variant.
* Removed some purposely commented out code in the audio mixer.
* Implemented late buffer notification, as well as late buffer handling in the
  audio mixer; this is a bit of work in progress, so the debug output is left
  in there.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-12 13:15:46 +00:00
David McPaul
63f8d1346e Remove downmix to stereo workaround.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-05 11:37:43 +00:00
David McPaul
50ff266ef2 Add SSE versions of YUV2RGB converters for earlier x86 cpus
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-25 21:53:56 +00:00
Stephan Aßmus
ab496a4be8 Patch by Humdinger:
Changed various labels in audio drivers to sentence case. This is
case-audio-drivers.diff from #5169.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-13 11:23:12 +00:00
David McPaul
7789e74c32 Cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-08 21:27:42 +00:00
David McPaul
7aa1ecffe5 remove commented out code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-08 11:42:44 +00:00
David McPaul
96f1b483e4 use width and height when deciding on which conversion routine to select. Remove some checks per frame from sse2 conversion routines. Hopefully it still handles misaligned buffers ok. Too many tests were hurting performance
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-08 11:25:48 +00:00
Stephan Aßmus
dfddb9f479 * Optionally use libswscale for color space conversion. Have not done any
performance tests, but I wrote this code before David got around to improve
   his color space assembler code and didn't want to throw it away. Turned
   off for the time being, since David's version works fine.
 * Supply a codec sub_id in the media_codec_info. This allows matching
   decoders to encoders, which comes in handy for Smart Rendering in Clockwerk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-07 01:18:32 +00:00
Stephan Aßmus
856d0bbf95 Disabled tracing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-07 01:14:44 +00:00
Stephan Aßmus
59ec4d2f76 * Disabled tracing.
* Use the configured source color space when converting instead of hardcoding
   B_RGB32. (Resolved TODO)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-07 01:14:20 +00:00
Stephan Aßmus
f947df7ded Slightly more precise calculations in finding keyframes/seeking.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-07 01:12:47 +00:00
Stephan Aßmus
79d332bbfe Missed this in my diff. Somewhat important to make Matroska container work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34927 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-07 01:11:12 +00:00
Stephan Aßmus
2a0cb284c4 Added utility function colorspace_to_pixfmt().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-07 01:10:28 +00:00
Stephan Aßmus
ead6198972 Enable Matroska container for testing purposes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-07 01:08:43 +00:00
Ingo Weinhold
0b58d8440c * Prefixed the INCLUDE_GPL_ADDONS variable by "HAIKU_". configure needs to
be run again or generated/build/BuildConfig needs to be adjusted manually.
* Removed bochs debug hack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-20 13:55:45 +00:00
Ingo Weinhold
9c3ad4fbb0 * Use TimeComputer to get smoother performance times.
* SetParameterValue(): Don't do anything, if the new output frequency value
  is the same as before. This avoids hickups when switching between the pages
  in the Media preflet.
* _FillNextBuffer(): Compare BBuffer and stream buffer size. They might
  differ directly after setting another output frequency, which could cause
  a crash.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 20:13:14 +00:00
Ingo Weinhold
cb00754227 Added support class TimeComputer to compute smoother performance times.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 20:04:58 +00:00
David McPaul
5868901fda Activate some test code to use large constant chunk sizes instead of small mp3 frame sizes. Improves I/O
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 12:08:36 +00:00
Jérôme Duval
faf3d7997f the sample rate label is Hz, not kHz.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 22:21:57 +00:00
Ingo Weinhold
d473f5766f Added support for setting the output frequency. Also done some preparation for
setting the input frequency, but I'm too lazy and not interested in the feature
to actually implement it.
For some reason the setting is not persistent. But the other parameters don't
seem to be persistent either, so this is apparently a general problem.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 12:40:06 +00:00
Ingo Weinhold
35a25fae05 Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 19:10:54 +00:00
Axel Dörfler
a9cf57cff5 * Cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-02 09:21:28 +00:00
David McPaul
1f7d28238c Added support for files with an index header but no index entries
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 22:06:31 +00:00
Axel Dörfler
2920b81793 * Fixed some coding style issues. David, please take a little more care about
this!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34408 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 13:04:21 +00:00
David McPaul
51b0c01316 Added ODML Index support, still needs work though too much duplicated code. Feedback welcome
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-29 21:07:35 +00:00
David McPaul
13af0e5bc0 Add support for VBRI header, remove duplicated code, always print error messages
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-23 12:18:34 +00:00
David McPaul
9b716314fc Rework Frame Length Calculation. Fixes issue with tllts mp3
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-16 11:57:19 +00:00
David McPaul
bd0058e0a7 Rework Frame Length Calculation. Fixes issue with tllts mp3
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-16 11:56:57 +00:00
David McPaul
c2d6e29c89 ensure buffers are aligned 32 for SSE2 should fix #4948
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34047 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-14 22:45:18 +00:00