Turn on more decoders

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28451 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
David McPaul 2008-11-01 23:03:15 +00:00
parent d2c702af77
commit e19363c6a2
5 changed files with 88 additions and 78 deletions

View File

@ -117,16 +117,14 @@ avCodec::Setup(media_format *ioEncodedFormat, const void *infoBuffer,
if (isAudio && !fOutputBuffer)
fOutputBuffer = new char[100000];
#if DEBUG
//#if DEBUG
char buffer[1024];
string_for_format(*ioEncodedFormat, buffer, sizeof(buffer);
string_for_format(*ioEncodedFormat, buffer, sizeof(buffer));
TRACE("[%c] input_format=%s\n", isAudio?('a'):('v'), buffer);
TRACE("[%c] infoSize=%ld\n", isAudio?('a'):('v'), infoSize);
TRACE("[%c] user_data_type=%08lx\n", isAudio?('a'):('v'),
ioEncodedFormat->user_data_type);
// TRACE("[%c] meta_data_size=%ld\n", isAudio?('a'):('v'),
// ioEncodedFormat->meta_data_size);
#endif
TRACE("[%c] user_data_type=%08lx\n", isAudio?('a'):('v'), ioEncodedFormat->user_data_type);
// TRACE("[%c] meta_data_size=%ld\n", isAudio?('a'):('v'), ioEncodedFormat->meta_data_size);
//#endif
media_format_description descr;
for (int32 i = 0; gCodecTable[i].id; i++) {
@ -157,10 +155,10 @@ avCodec::Setup(media_format *ioEncodedFormat, const void *infoBuffer,
| descr.u.misc.codec;
break;
default:
puts("ERR family");
puts("ERR family");
return B_ERROR;
}
TRACE(" codec id = \"%c%c%c%c\"\n", (char)((cid >> 24) & 0xff),
TRACE(" 0x%04lx codec id = \"%c%c%c%c\"\n", uint32(cid), (char)((cid >> 24) & 0xff),
(char)((cid >> 16) & 0xff), (char)((cid >> 8) & 0xff),
(char)(cid & 0xff));
@ -393,7 +391,7 @@ avCodec::Decode(void *out_buffer, int64 *out_frameCount,
set_thread_priority(find_thread(NULL), B_NORMAL_PRIORITY);
#endif
TRACE("[%c] avCodec::Decode()\n", isAudio?('a'):('v'));
// TRACE("[%c] avCodec::Decode()\n", isAudio?('a'):('v'));
if (isAudio) {
@ -432,7 +430,7 @@ avCodec::Decode(void *out_buffer, int64 *out_frameCount,
status_t err;
err = GetNextChunk(&fChunkBuffer, &fChunkBufferSize, &chunk_mh);
if (err != B_OK || fChunkBufferSize < 0) {
TRACE("GetNextChunk error\n");
TRACE("GetNextChunk error %ld\n",fChunkBufferSize);
fChunkBufferSize = 0;
break;
}
@ -456,8 +454,7 @@ avCodec::Decode(void *out_buffer, int64 *out_frameCount,
fChunkBufferOffset = 0;
fChunkBufferSize = 0;
// } else {
// TRACE("audio decode: len %d, out_size %d\n", len,
// out_size);
// TRACE("audio decode: len %d, out_size %d\n", len, out_size);
}
fChunkBufferOffset += len;
fChunkBufferSize -= len;
@ -475,8 +472,7 @@ avCodec::Decode(void *out_buffer, int64 *out_frameCount,
err = GetNextChunk(&data, &size, &chunk_mh);
if (err != B_OK) {
TRACE("avCodec::Decode(): error 0x%08lx from GetNextChunk()\n",
err);
TRACE("avCodec::Decode(): error 0x%08lx from GetNextChunk()\n", err);
return err;
}
@ -527,8 +523,8 @@ avCodec::Decode(void *out_buffer, int64 *out_frameCount,
#ifdef DO_PROFILING
prof_t2 = system_time();
#endif
TRACE("ONE FRAME OUT !! len=%d size=%ld (%s)\n", len, size,
pixfmt_to_string(ffc->pix_fmt));
// TRACE("ONE FRAME OUT !! len=%d size=%ld (%s)\n", len, size,
// pixfmt_to_string(ffc->pix_fmt));
/*
opicture.data[0] = (uint8_t *)out_buffer;
opicture.linesize[0] = fOutputVideoFormat.display.bytes_per_row;

View File

@ -49,6 +49,7 @@ const struct codec_table gCodecTable[] = {
{CODEC_ID_MP2, B_MEDIA_ENCODED_AUDIO, B_QUICKTIME_FORMAT_FAMILY, 0x6D730050, "MP Layer2"},
{CODEC_ID_MP2, B_MEDIA_ENCODED_AUDIO, B_QUICKTIME_FORMAT_FAMILY, 0x6D730055, "MP Layer3"},
{CODEC_ID_ADPCM_IMA_QT, B_MEDIA_ENCODED_AUDIO, B_QUICKTIME_FORMAT_FAMILY, 'ima4', "Quicktime IMA4"},
{CODEC_ID_ADPCM_IMA_QT, B_MEDIA_ENCODED_AUDIO, B_QUICKTIME_FORMAT_FAMILY, 'IMA4', "Quicktime IMA4"},
{CODEC_ID_MPEG4AAC, B_MEDIA_ENCODED_AUDIO, B_QUICKTIME_FORMAT_FAMILY, 'mp4a', "MPEG4 AAC"},
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, 'mp4v', "MPEG4 Video"},
{CODEC_ID_MPEG4AAC, B_MEDIA_ENCODED_AUDIO, B_QUICKTIME_FORMAT_FAMILY, 'a4pm', "MPEG4 AAC"},
@ -62,8 +63,8 @@ const struct codec_table gCodecTable[] = {
#endif
#if 0
{CODEC_ID_MP2, B_MEDIA_ENCODED_AUDIO, B_WAV_FORMAT_FAMILY, 0x50, "MPEG Audio Layer 2"}, /* mpeg audio layer 2 */
{CODEC_ID_MP2, B_MEDIA_ENCODED_AUDIO, B_WAV_FORMAT_FAMILY, 0x55, "MPEG Audio Layer 3"}, /* mpeg audio layer 3 */
{CODEC_ID_MP2, B_MEDIA_ENCODED_AUDIO, B_WAV_FORMAT_FAMILY, 0x0050, "MPEG Audio Layer 2"}, /* mpeg audio layer 2 */
{CODEC_ID_MP2, B_MEDIA_ENCODED_AUDIO, B_WAV_FORMAT_FAMILY, 0x0055, "MPEG Audio Layer 3"}, /* mpeg audio layer 3 */
#endif
{CODEC_ID_WMAV1, B_MEDIA_ENCODED_AUDIO, B_WAV_FORMAT_FAMILY, 0x160, "MS WMA v1"},
@ -95,6 +96,7 @@ const struct codec_table gCodecTable[] = {
{CODEC_ID_H264, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, 'h264', "H264"},
{CODEC_ID_H264, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, 'H264', "H264"},
{CODEC_ID_H264, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, 'avc1', "AVC"}, /* MPEG-4 AVC */
#ifdef HAS_PHOTO_JPEG
{CODEC_ID_MJPEG, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, 'JPEG', "Photo-JPEG"},
@ -116,7 +118,7 @@ const struct codec_table gCodecTable[] = {
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, '4PMF', "ffmpeg MPEG4"},
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, 'DIVX', "MPEG4"}, /* OpenDivX */ /* XXX: doesn't seem to work */
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, 'divx', "MPEG4"}, /* OpenDivX */
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, 'mp4v', "MPEG4"}, /* OpenDivX */
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, 'mp4v', "MPEG4"}, /* MPEG-4 ASP */
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY, 'XVID', "XviD (MPEG4)"}, /* OpenDivX ??? XXX: test */
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, 'FMP4', "ffmpeg MPEG4"},
{CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, '4PMF', "ffmpeg MPEG4"},

View File

@ -55,7 +55,7 @@ gfx_convert_func resolve_colorspace(color_space colorSpace, PixelFormat pixelFor
}
}
if (pixelFormat == PIX_FMT_YUV420P) {
if (pixelFormat == PIX_FMT_YUV420P || pixelFormat == PIX_FMT_YUVJ420P) {
#if INCLUDE_MMX
if (mmx) {
TRACE("resolve_colorspace: gfx_conv_yuv420p_rgb32_mmx\n");
@ -107,7 +107,7 @@ gfx_convert_func resolve_colorspace(color_space colorSpace, PixelFormat pixelFor
}
}
if (pixelFormat == PIX_FMT_YUV420P) {
if (pixelFormat == PIX_FMT_YUV420P || pixelFormat == PIX_FMT_YUVJ420P) {
#if INCLUDE_MMX
if (mmx) {
TRACE("resolve_colorspace: gfx_conv_yuv420p_ycbcr422_mmx\n");
@ -147,6 +147,10 @@ const char *pixfmt_to_string(int p)
switch(p) {
case PIX_FMT_YUV420P:
return "PIX_FMT_YUV420P";
case PIX_FMT_YUVJ420P:
return "PIX_FMT_YUVJ420P - YUV420P (Jpeg)";
case PIX_FMT_YUVA420P:
return "PIX_FMT_YUVA420P - YUV420P (Alpha)";
case PIX_FMT_YUV422:
return "PIX_FMT_YUV422";
case PIX_FMT_RGB24:

View File

@ -20,11 +20,11 @@ StaticLibrary libavcodec.a :
aac_parser.c
aactab.c
aasc.c
# ac3.c
# ac3_parser.c
# ac3dec.c
# ac3dec_data.c
# ac3tab.c
ac3.c
ac3_parser.c
ac3dec.c
ac3dec_data.c
ac3tab.c
acelp_filters.c
acelp_math.c
acelp_pitch_delay.c
@ -33,7 +33,7 @@ StaticLibrary libavcodec.a :
adxdec.c
alac.c
allcodecs.c
# apedec.c
apedec.c
asv1.c
atrac3.c
audioconvert.c
@ -140,9 +140,9 @@ StaticLibrary libavcodec.a :
mjpega_dump_header_bsf.c
mjpegbdec.c
mjpegdec.c
# mlp.c
# mlp_parser.c
# mlpdec.c
mlp.c
mlp_parser.c
mlpdec.c
# mmvideo.c
motion_est.c
motionpixels.c
@ -166,9 +166,9 @@ StaticLibrary libavcodec.a :
msmpeg4.c
msmpeg4data.c
msrle.c
# msvideo1.c
# nellymoser.c
# nellymoserdec.c
msvideo1.c
nellymoser.c
nellymoserdec.c
noise_bsf.c
nuv.c
opt.c
@ -177,8 +177,8 @@ StaticLibrary libavcodec.a :
pcx.c
png.c
# pngdec.c
# pnm.c
# pnm_parser.c
pnm.c
pnm_parser.c
# pnmenc.c
pthread.c
ptx.c
@ -197,67 +197,67 @@ StaticLibrary libavcodec.a :
resample2.c
rl2.c
rle.c
# roqaudioenc.c
# roqvideo.c
# roqvideodec.c
roqaudioenc.c
roqvideo.c
roqvideodec.c
# roqvideoenc.c
rpza.c
rtjpeg.c
# rv10.c
rv10.c
# rv30.c
# rv30dsp.c
# rv34.c
# rv40.c
rv40.c
s3tc.c
sgidec.c
shorten.c
simple_idct.c
# smacker.c
smacker.c
smc.c
# snow.c
sonic.c
# sp5xdec.c
sp5xdec.c
# sunrast.c
# svq1.c
# svq1dec.c
# svq3.c
svq1.c
svq1dec.c
# svq3.c - Included by h264
# targa.c
# tiertexseqv.c
# tiff.c
# tiffenc.c
# truemotion1.c
# truemotion2.c
# truespeech.c
truemotion1.c
truemotion2.c
truespeech.c
# tscc.c
# tta.c
# txd.c
ulti.c
utils.c
vb.c
# vc1.c
# vc1_parser.c
# vc1data.c
# vc1dsp.c
# vcr1.c
# vmdav.c
vc1.c
vc1_parser.c
vc1data.c
vc1dsp.c
vcr1.c
vmdav.c
# vmnc.c
vorbis.c
vorbis_data.c
vorbis_dec.c
# vp3.c
# vp3_parser.c
# vp3dsp.c
# vp5.c
# vp56.c
# vp56data.c
# vp6.c
vp3.c
vp3_parser.c
vp3dsp.c
vp5.c
vp56.c
vp56data.c
vp6.c
# vqavideo.c
wavpack.c
# wma.c
# wmadec.c
wma.c
wmadec.c
wmv2.c
# wmv2dec.c
# wnv1.c
wmv2dec.c
wnv1.c
# ws-snd1.c
# xan.c
xiph.c

View File

@ -10,6 +10,14 @@
#define CONFIG_MPEGAUDIO_HP 1
#define CONFIG_HAVE_DLOPEN 1
#define CONFIG_AUDIO_BEOS 1
#define CONFIG_MP2_DECODER 1
#define CONFIG_MP3_DECODER 1
#define CONFIG_MP3ON4_DECODER 1
#define CONFIG_MP3ADU_DECODER 1
#define CONFIG_VC1_DECODER 1
#define CONFIG_WMV2_DECODER 1
#define CONFIG_WMV3_DECODER 1
#define CONFIG_AC3_DECODER 1
/* #define CONFIG_NETWORK 1 */
/* #define CONFIG_ZLIB 1 */
#define HAVE_MALLOC_H 1
@ -153,8 +161,8 @@
#define ENABLE_SP5X_DECODER 0
#define ENABLE_SUNRAST_DECODER 0
#define ENABLE_SVQ1_ENCODER 0
#define ENABLE_SVQ1_DECODER 0
#define ENABLE_SVQ3_DECODER 0
#define ENABLE_SVQ1_DECODER 1
#define ENABLE_SVQ3_DECODER 1
#define ENABLE_TARGA_ENCODER 0
#define ENABLE_TARGA_DECODER 0
#define ENABLE_THEORA_DECODER 0
@ -179,11 +187,11 @@
#define ENABLE_VP6F_DECODER 0
#define ENABLE_VQA_DECODER 0
#define ENABLE_WMV1_ENCODER 0
#define ENABLE_WMV1_DECODER 0
#define ENABLE_WMV1_DECODER 1
#define ENABLE_WMV2_ENCODER 0
#define ENABLE_WMV2_DECODER 0
#define ENABLE_WMV3_DECODER 0
#define ENABLE_WNV1_DECODER 0
#define ENABLE_WMV2_DECODER 1
#define ENABLE_WMV3_DECODER 1
#define ENABLE_WNV1_DECODER 1
#define ENABLE_XAN_WC3_DECODER 0
#define ENABLE_XL_DECODER 0
#define ENABLE_XSUB_DECODER 0
@ -193,7 +201,7 @@
#define ENABLE_ZMBV_DECODER 0
#define ENABLE_AAC_DECODER 1
#define ENABLE_AC3_ENCODER 0
#define ENABLE_AC3_DECODER 0
#define ENABLE_AC3_DECODER 1
#define ENABLE_ALAC_ENCODER 0
#define ENABLE_ALAC_DECODER 1
#define ENABLE_APE_DECODER 0
@ -208,10 +216,10 @@
#define ENABLE_MACE6_DECODER 1
#define ENABLE_MLP_DECODER 0
#define ENABLE_MP2_ENCODER 0
#define ENABLE_MP2_DECODER 0
#define ENABLE_MP3_DECODER 0
#define ENABLE_MP3ADU_DECODER 0
#define ENABLE_MP3ON4_DECODER 0
#define ENABLE_MP2_DECODER 1
#define ENABLE_MP3_DECODER 1
#define ENABLE_MP3ADU_DECODER 1
#define ENABLE_MP3ON4_DECODER 1
#define ENABLE_MPC7_DECODER 1
#define ENABLE_MPC8_DECODER 1
#define ENABLE_NELLYMOSER_DECODER 0
@ -353,7 +361,7 @@
#define ENABLE_DVDSUB_PARSER 0
#define ENABLE_H261_PARSER 0
#define ENABLE_H263_PARSER 0
#define ENABLE_H264_PARSER 0
#define ENABLE_H264_PARSER 1
#define ENABLE_MJPEG_PARSER 0
#define ENABLE_MLP_PARSER 0
#define ENABLE_MPEG4VIDEO_PARSER 0