Media Kit: Add MPEG2 video stream decoder test.

- This test currently fails and thus showing that there is something wrong in
  the Media Kit.
- This test was first developed and tested on Haiku R1 Alpha 4.1 where
  every thing was hacked together to make this test succeed, thus showing that
  the current Media Kit state of affair has some issues and not this test :)
- The test comes with documentation (@see mpeg2_decoder.test.cpp).

Signed-off-by: Colin Günther <coling@gmx.de>
Media Kit: Add MP3 audio stream decoder test.

- This test currently fails and thus showing that there is something wrong in
  the Media Kit.
- This test was first developed and tested on Haiku R1 Alpha 4.1 where
  every thing was hacked together to make this test succeed, thus showing that
  the current Media Kit state of affair has some issues and not this test :)
- The test comes with documentation (@see mp3_decoder_test.cpp).

Signed-off-by: Colin Günther <coling@gmx.de>
PS/2 bus manager: style fixes only
CIDs 1162783 & 1162784: out-of-bounds access & write in MSI.

* The number of IO vectors is not 256 on x86, but rather 224 as set by
  NUM_IO_VECTORS in "arch_int.h".
* Jessicah mentioned hearing about MSI crashes before, but that was a
  few weeks ago.
* These were the only CIDs in the MSI code.

Signed-off-by: Michael Lotz <mmlr@mlotz.ch>
package kit: PackageFileHeapReader::Init(): Sanity checks

Make sure the compressed/uncompressed heap size and the chunk size
table look plausible, so we can rely on the values later. Fixes
potential crashes for corrupt packages.
PackageWriterImpl: Move _Finish() impl to match order in header
BPackageWriter: Add Recompress()

Allows rewriting an existing package file with a different compression.
package: Add command recompress

The streaming feature for -0 is missing yet.
MimeType: fix SetFileExtensions
DVB media addon: Fix debug build.

- Compiling dvb.media_addon with DEBUG on fails with error message:
    generated/objects/haiku/x86/debug_1/add-ons/media/media-add-ons/dvb/
    MediaFormat.o: In function `av_log2_c': /boot/home/Development/haiku-a4/
    generated/build_packages/ffmpeg-0.10.2-r1a4-x86-gcc2-2012-08-30/common/
    include/libavutil/common.h:80: undefined reference to `ff_log2_tab'
    collect2: ld returned 1 exit status"

- Research done to narrow down the solution space:
    - ff_log2_tab is a array that is nowhere needed in the dvb.media_addon
    - ff_log2_tab is defined as an extern array in the ffmpeg header file
      libavutil/common.h
    - ff_log2_tab is used in the inline function av_log2_c (libavutil/common.h)
      which doesn't get optimized away when compiling with debug information
    - MediaFormat.cpp needs only some Codec-IDs from the ffmpeg header file
      avcodec.h

- The following fixes were tried:
    - Trying to eliminate unused debug symbols with compilation
      flag -feliminate-unused-debug-types (see gcc documentation
      http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Debugging-Options.html#Debugging-Options)
      by adding the following lines to UserBuildConfig
          AppendToConfigVar C++FLAGS : HAIKU_TOP src : -feliminate-unused-debug-types : global ;
          AppendToConfigVar CCFLAGS : HAIKU_TOP src : -feliminate-unused-debug-types : global ;
      -> Failed, because flag -feliminate-unused-debug-types is not supported by GCC 2.95.3

    - Trying to eliminate unused debug symbols in the linker stage
      -> This worked, by removing the LINKFLAG "-Xlinker --no-undefined" when
         linking all objects into the dvb.media_addon we are getting our addon
         with debug symbols.

- Final solution:
    - Instead of adding/removing flags, we just add the missing implementation
      for the ff_log2_tab array in MediaFormat.cpp. This -feels- the seems to
      be the cleanest solution as it is more obvious what's goin' on compared
      to hiding the solution in the Jamfile.

Signed-off-by: Colin Günther <coling@gmx.de>
Media Kit: Add workaround for #11018 to MPEG2 video stream decoder test.

The workaround triggers the loading of all media plugins prior to using
methods of class BMediaFormats. Using the function get_next_encoder()
is used because of two facts

1. It is publicly available and thus can be used by 3rd party apps,
   too.
2. It is already available by including BMediaFormats.h, so there is
   no need to include another header for this workaround.

Signed-off-by: Colin Günther <coling@gmx.de>
(cherry picked from commit 80354716fe8b25c81ec45bd96ae36e171228b8a0)
Media Kit: Add workaround for #11018 to MP3 audio stream decoder test.

The workaround triggers the loading of all media plugins prior to using
methods of class BMediaFormats. Using the function get_next_encoder()
is used because of two facts

1. It is publicly available and thus can be used by 3rd party apps,
   too.
2. It is already available by including BMediaFormats.h, so there is
   no need to include another header for this workaround.

Signed-off-by: Colin Günther <coling@gmx.de>
(cherry picked from commit a89b0a4e69f18b2b3b2c2f5615450a5ddac838af)
cddb_daemon: Various fixes.

 * Add ".wav" to the ends of filenames
 * Add a track number at the beginning of the filename, e.g. "01"
 * Don't hard-fail if the FreeDB response contains an invalid year

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
file_systems/cdda: avoid leaking the attributes fd.

* see bug #9528.
file_systems/cdda: Various fixes.

 * When restoring shared attributes, don't affect CDDB:lookup status
 * Volume renames should not affect CDDB:lookup status, only file renames should

This fixes some of the "cddb_daemon not updating CD info" problems.

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
Update BePDF package and its dependencies.

Signed-off-by: Oliver Tappe <zooey@hirschkaefer.de>
bfs: fixed wrong key comparison in validator.

* bplustree_header::DataType() is not compatible with the type constants
  compareKeys() expects. Use _CompareKeys() instead.
bfs: Use the QueryParserUtils instead of its own copy.

* Ingo copied the methods into a shared location, and then obviously
  "forgot" to let BFS use them. As a side note for Ingo: the complete
  error GCC reported was "std::fssh_size_t" not defined with the macro
  wrapper as code location. The actual problem was a "using std::size_t"
  in some C++ header that accidentally got included after the wrapper.
* The shared Query code is not yet used. That'll be done another time.
* Renamed BFS_SHELL define to FS_SHELL, such that QueryParserUtils can be
  used in any file system shell, not just the bfs_shell.
CDPlayer: remove from image & delete

  * Does not work on recent hardware
  * It now lives at: https://github.com/HaikuArchives/CDPlayer

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
Input Server: style fix, compare with 0 explicitly