Commit Graph

51213 Commits

Author SHA1 Message Date
Colin Günther
ffb0f5db8e FFMPEG Plugin: Automatic detection of audio decoding parameters.
- Kudos to Marcus Overhagen for laying out the general idea of automatic
  detection by sharing some of his dvb code examples with me.
- Automatically detect the audio frame rate, channel count and sample format.
- Share audio sample format conversion code between AVFormatReader and
  AVCodecDecoder.
- Tested with several video and audio files via MediaPlayer.
- Tested also with test case mp3_decoder_test -after- removing the hard coded
  audio decoding parameters. Although the test shows that auto detection is
  working (via stepping through the auto detection code path) the complete test
  is still failing, due to missing implementation of incomplete audio frame
  decoding.
- Add and update the documentation accordingly.
2014-08-24 00:26:52 +02:00
Colin Günther
1a963de4e0 FFMPEG Plugin: Refactor out audio frames chunk decoding.
- Main purpose is to prepare auto detection of audio frame properties for
  media formats that encode those properties in the frames themself (e.g. MP3)
  instead of in the container format (e.g. WMA).
  The main difference between akin named methods _DecodeNextAudioFrame() and
  _DecodeNextAudioFrameChunk() is that the former method deals with providing
  the exact number of audio frames expected by the caller of
  BMediaDecoder::Decode() and the latter deals with decoding any number of
  audio frames at all.

- New documentation added and existing documentationupdated accordingly.

- No functional change intended.
2014-08-24 00:26:48 +02:00
Colin Günther
3c6f9c1087 FFMPEG Plugin: Fill out more media header fields in audio path.
- Some small refactoring when resetting fRawDecodedAudio. Instead of letting
  FFMPEG reset fRawDecodedAudio we do it manually to preserve the allocated
  memory in fRawDecodedAudio->opaque (otherwise FFMPEG's
  avcodec_get_frame_defaults() would NULLify the opaque pointer without
  releasing the allocated memory.

- Keep track of the total size of fDecodedData in fRawDecodedAudio->linesize[0]
  instead of relying on calculating it every time it is needed. This makes the
  code more comprehensible.
2014-08-24 00:26:44 +02:00
Adrien Destugues
f4df6bfab7 BEntry::Unset doc: missing \fn, better description. 2014-08-23 17:37:33 +02:00
Fredrik Holmqvist
454ca0b1aa Accidently push tracing on device_manager. Fixing. 2014-08-23 16:35:32 +02:00
Fredrik Holmqvist
ad5bbfb8e1 Update ACPICA to 20140724.
Previous update was 20121018. So it was about time don't you think? I think so :)

 * ACPI 5.1 is fully supported in ACPICA as of this release.

Changes are so many that I can just point to the Changelog:
  https://acpica.org/sites/acpica/files/changes_13.txt

Here is the work in progress: http://instagram.com/p/sCxrHnh2sU/
2014-08-23 16:30:50 +02:00
Colin Günther
1b8bbb509a FFMPEG Plugin: Refactor out checking of invalid conditions in audio path.
- Main reason for this refactoring is to increase readability and thus make
  audio decode path more comprehensible.

- Added documentation for the new method accordingly.

- Small change in calculating the decoded data size to clear when error occurs
  during decoding. This way it is more readable and more consistent with
  calculations of decoded data size on other locations.

- No functional change intended.
2014-08-22 23:34:13 +02:00
Colin Günther
ca5c686d93 FFMPEG Plugin: Refactor out moving audio frames from buffer.
- Main reason for this refactoring is to increase readability and thus make the
  audio decode path more comprehensible.

- Added documentation for the new method accordingly.

- No functional change intended.
2014-08-22 23:34:09 +02:00
Colin Günther
7dc2773cff FFMPEG Plugin: Refactor out chunk loading in audio path.
- Main reasons are to increase readability of audio path and to demonstrate
  that chunk loading in audio and video path is the same code that can be
  focused in one method (instead of two at the moment). Added a TODO for
  collapsing both methods into one and the conditions that must hold true to
  do so (just in case I'll be hitted by a bus and someone else has to proceed).
  Collapsing is scheduled for a later commit.

- Added documentation for the new method accordingly.

- Make use of full line length in comments of
  _LoadNextVideoChunkIfNeededAndAssignStartTime().

- No functional change intended.
2014-08-22 23:34:05 +02:00
Colin Günther
463f34021e FFMPEG Plugin: Refactor out actual audio decoding part.
- Main reason for this refactoring is to increase readability and thus make the
  audio decode path more comprehensible.

- Added documentation for the new method accordingly.

- Small refactoring for detecting when to update fRawDecodedAudio's properties.
  This is a preparation step for factoring out the flushing of the
  fDecodedDataBuffer in a later commit.

- No functional change intended.
2014-08-22 23:34:01 +02:00
Adrien Destugues
4ddea1f862 ScreenSaver: rework some of the fixes
* Use a BTextView for the "no preview" text again, as Skipp_OSX pointed
this allows it to word wrap as needed with any font bigger than 10pt.
* Show a black screen rather than the "no preview" text for Darkness and
when a screensaver fails to load. This matches what screen_blanker will
do.
2014-08-22 22:40:08 +02:00
PulkoMandy
da2ec759d7 ARM: Add the gcc_syslibs package.
Let's see if this gets the non-bootstrap build further...
2014-08-22 17:34:18 +02:00
Adrien Destugues
1e8185d903 SerialConnect: even more style fixes.
Thanks to Korli for reviewing...
2014-08-22 16:38:36 +02:00
Adrien Destugues
3e6c09cdfb configure: make nasm check compatible with BSD grep.
The BSD grep doesn't know about \s. Moreover, checking for elf (rather
than ELF) seems to make more sense, as that's the format name, not part
of the description.

Patch suggested by geist. Thanks!
2014-08-22 12:16:53 +02:00
Adrien Destugues
604dad9490 SerialConnect: fix return and backspace keys. 2014-08-22 12:16:45 +02:00
Colin Günther
815d18fb53 FFMPEG Plugin: Refactor start time handling in audio path.
- FFMPEG handles the relationship of start time between encoded and decoded
  audio data now by using the fTempPacket->dts and the
  fDecodedDataBuffer->pkt_dts fields. We still have to manually keep track of
  start times for consecutive audio frames though to support returning a number
  of audio frames that may assembled of partial AVFrames.

- The start time of the very first audio frame data packet returned by Decode()
  is now correctly calculated based on GetNextChunk() start times instead of
  being always zero.

- Introduce fRawDecodedAudio that serves as a container to store properties of
  the audio frames stored in fDecodedData. This prepares the population of the
  fHeader structure with audio frame properties needed to allow clients of
  BMediaDecoder::Decode() detect audio format changes in a later commit.

- Remove fStartTime as it is superflous now.
2014-08-21 21:46:22 +02:00
Colin Günther
8516a39e5d FFMPEG Plugin: Small cleanup
- The reason for compiler complaining about "INT64_C is not defined here" is
  gone since the addition of the compiler flag "-D__STDC_CONSTANT_MACROS"
  to the Jamfile some time ago. This flag allows C++ to use C99 math features.

- No functional change intended.
2014-08-21 21:46:18 +02:00
Colin Günther
7f485803cd FFMPEG Plugin: Print debug output for audio frames, too
- Also change what is printed for video frames. Currently both
  debug_fframe_[audio|video] are used in AVCodecDecoder only and thus are
  streamlined for their usage there. For example we print the AVFrame.pkt_dts
  field instead of the AVFrame.pkt field because the later one is never touched
  by AVCodecDecoders usage of the FFMPEG library.
  Note: AVFrame.pkt being never touched means that it always contains the value
  AV_NOPTS_VALUE making it less useful for debug purposes.
2014-08-21 21:46:14 +02:00
Jérôme Duval
b8c4fa9da6 Update freetype packages 2014-08-21 18:28:22 +02:00
PulkoMandy
7b61192485 ARM: Add "fake" libsolv package
* Package provided by mmu_man. Thanks!
* Should fix the current error for the ARM non-bootstrap build. Let's
see how far it goes now...
2014-08-21 14:58:50 +02:00
PulkoMandy
037cc4616b Add some "fake" packages to the ARM repositories
The packages are the bootstrap ones, modified with the "unbootstrap"
script. Not recommended for real use, but this should make playing with
the ARM build a bit simpler.

The libsolv package somehow got lost in the process when I converted
those. Anyone with a copy of the libsolv_bootstrap packages in their
arm generated folder is welcome to "unbootstrap" and upload it.
2014-08-21 10:21:39 +02:00
Adrien Destugues
788e359072 checkstyle: Add missing check for space after switch 2014-08-21 08:43:44 +02:00
Adrien Destugues
730d796a17 Style fixes. 2014-08-21 08:43:43 +02:00
Colin Günther
b82ef8bc15 FFMPEG Plugin: Refactor scope of fTempPacket in audio path.
- There are two main reasons for this refactoring:
    1. Prepare using FFMPEGs functionality of audio frame start time assignment
       (instead of rolling it ourself) like already done for the video path
       (see _LoadNextVideoChunkIfNeededAndAssignStartTime() for reference).
    2. Get rid of fChunkBufferOffset (this is a minor reason though).

- Untangle some of the conditional checks to increase readability.

- No functional change intended.
2014-08-21 00:47:06 +02:00
Colin Günther
3bca609810 FFMPEG Plugin: Rename some variables in audio path.
- Make the difference between fDecodedData and fDecodedDataBuffer more clear.

- No functional change intended.
2014-08-21 00:47:02 +02:00
Colin Günther
85371234ea FFMPEG Plugin: Refactor audio decoding method into two.
- First method is solely responsible to fill the audio output buffer with
  already decoded audio frames.
  Second method is solely responsible for decoding the encoded audio data and
  put it in the decoded audio output buffer for further processing with the
  first method.
  This prepares auto detection of audio frame properties for audio formats
  where the properties are contained within the encoded audio frame (e.g. MP3),
  instead within the audio container format (e.g. WMA). Implementing auto
  detection is scheduled for a later commit though.

- Added documentation accordingly.

- No functional change intended.
2014-08-21 00:46:58 +02:00
Colin Günther
54b392b4cc FFMPEG Plugin: Some cleanups.
- Use name that correctly reflects the return value of avcodec_decode_video2().
- Make DO_PROFILING code path of AVCodecDecoder compile again.
- No functional change intended.
2014-08-21 00:46:54 +02:00
Adrien Destugues
37bea90971 Translate arrow keys to VT100 escape sequences
* I think this is what everyone expects.
2014-08-20 23:03:50 +02:00
Adrien Destugues
ec17ebde08 UHCI: Enable short packet detection for all transfers.
As suggested by akshay, there is no reason to do this only for control
transfers. All input transfers can have short packets and we want to
detect those and trigger the "end of transfer" code when a short packet
happens.

Fixes #11087.
2014-08-20 22:05:59 +02:00
Jérôme Duval
a59d618257 Add tinyxml packages 2014-08-20 21:43:08 +02:00
Jérôme Duval
ba38feb929 Add glew packages 2014-08-20 21:40:29 +02:00
Colin Günther
ddde2c69c3 TV app: Use bilinear filtering.
- This makes the video output looks more visual appealing. Without bilinear
  filtering you would see aliasing artifacts all over the place. Now it looks
  more harmonic.
2014-08-20 12:23:03 +02:00
Colin Günther
740ede8c95 dvb.media_addon: Let C++ use C99 math features.
- This get rids of the complain "'UINT64_C' was not declared in this scope" and
  allows us to remove the (now superflous) declaration of UINT64_C.
- No functional change intended.
2014-08-20 12:23:02 +02:00
Colin Günther
75bd62e868 FFMPEG Plugin: Fix playing video files.
- This should fix the bug where video files that played well before the recent
  changes to the FFMPEG Plugin didn't play anymore. Now we apply the essential
  video container properties (that were passed by with Setup()) to the
  AVCodecContext. Some video formats simply store those properties in the
  container only (e.g. AVI, WMV) and not in the video frames itself
  (e.g. MPEG2).
  Tested with several files from samples.ffmpeg.org and from the FATE suite of
  FFMPEG.
2014-08-20 11:14:47 +02:00
François Revol
d78faaaf70 pc_serial: replace contiguous area by arrays as buffers
We don't need to DMA unlike usb_serial.
2014-08-20 02:40:09 +02:00
François Revol
5925b1badc pc_serial: Remove read and write lock
As with hrev42089 for usb_serial.
2014-08-20 00:20:57 +02:00
Jérôme Duval
0bdabc362b openssl: security update
Fix for CVE-2014-3510
Fix for CVE-2014-3507
Fix for CVE-2014-3506
Fix for CVE-2014-3505
Fix for CVE-2014-3509
Fix for CVE-2014-3508
2014-08-20 00:04:14 +02:00
Alexander von Gluck IV
febaef90ec screen_info: Create BApplication to use BScreen
* BScreen uses AppServerLink, thanks PulkoMandy!
2014-08-19 13:28:54 -04:00
Alexander von Gluck IV
be84a96144 bin: Add screen_info command
* Provides basic information on attached BScreen's
* Only shows B_MAIN_SCREEN_ID at the moment as that's
  all we have available.
2014-08-19 12:50:39 -04:00
Alexander von Gluck IV
ea28139d84 docs: Update opengl readme info 2014-08-19 10:39:23 -04:00
Alexander von Gluck IV
4662c8c0a9 docs: opengl. Add some great documentation provided by Roudolf.
* Posted to the haiku-appserver ML, circa 2005.
* Covers a lot of intended uses of Be's accelerant API's in
  depth and compares them to moden cards
2014-08-19 10:28:53 -04:00
Adrien Destugues
f66aa8595c Enable C++11 for all ARM targets, not just beagle.
* Also clean up the flags definitions in the beagle target to avoid
repeating the flags 3 times.
2014-08-18 09:00:50 +02:00
Arvind S Raj
7a402b996e Reimplemented atomic_get_and_set in C++.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

* C++ code written by pdziepak.
2014-08-18 08:45:40 +02:00
Oliver Tappe
e81d40a7c8 Fix debug build.
* Restore missing definitions of std::nothrow and mynothrow that are
  required for the debug build.
* Additionally, cleanup function overrides provided by kernel_cpp,
  such that any exceptions in kernel, bootloader or runtime_loader will 
  trigger a panic.
2014-08-17 20:24:02 +02:00
Ithamar R. Adema
21af7e541f ARM: remove all references to sfdisk
sfdisk is no longer used by the ARM build, since we can handle
everything with mtools (using mpartition instead of sfdisk).
2014-08-17 14:34:25 +02:00
François Revol
ab325d984f pc_serial: Drop BeOS stuff
Even I don't use it anymore...
2014-08-17 01:47:00 +02:00
François Revol
2ab4db4781 pc_serial: Use two tty cookies 2014-08-17 01:46:53 +02:00
François Revol
c8b6d087f3 pc_serial: This one really is B31250 2014-08-17 00:41:12 +02:00
François Revol
8e03cf4b31 pc_serial: Fix TTYSETRTS
Same fix as hrev42151 for usb_serial:
When determining the bit to be set for RTS/DTR there was a missing comparison
to op which would've caused a wrong line state to be set.
2014-08-17 00:20:55 +02:00
François Revol
13b28a29b8 Add mpd package 2014-08-16 01:43:45 +02:00