From eca9668a4a8697d5fe91d07caefa4c6b0310ab0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Fri, 15 Oct 2010 15:27:16 +0000 Subject: [PATCH] Enable DV format (muxer) and DV encoder. It works, but only for certain video sizes (720x576 for example) and with 48 kHz raw audio. Clockwerk actually uses a mechanism which worked on BeOS to check if an encoder would accept a certain media_format, but this does not yet work on Haiku and thus the format is available even when trying to render later will fail. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38978 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../media/plugins/ffmpeg/EncoderTable.cpp | 21 +++++++++++++++---- .../media/plugins/ffmpeg/MuxerTable.cpp | 16 ++++++++++++++ src/add-ons/media/plugins/ffmpeg/config.h | 6 +++--- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/add-ons/media/plugins/ffmpeg/EncoderTable.cpp b/src/add-ons/media/plugins/ffmpeg/EncoderTable.cpp index c68a9ce1b2..9d4381f68b 100644 --- a/src/add-ons/media/plugins/ffmpeg/EncoderTable.cpp +++ b/src/add-ons/media/plugins/ffmpeg/EncoderTable.cpp @@ -10,7 +10,7 @@ const EncoderDescription gEncoderTable[] = { { { - "MPEG4 video", + "MPEG-4 video", "mpeg4", 0, CODEC_ID_MPEG4, @@ -23,7 +23,7 @@ const EncoderDescription gEncoderTable[] = { }, { { - "MPEG1 video", + "MPEG-1 video", "mpeg1video", 0, CODEC_ID_MPEG1VIDEO, @@ -36,7 +36,7 @@ const EncoderDescription gEncoderTable[] = { }, { { - "MPEG2 video", + "MPEG-2 video", "mpeg2video", 0, CODEC_ID_MPEG2VIDEO, @@ -58,7 +58,20 @@ const EncoderDescription gEncoderTable[] = { B_ANY_FORMAT_FAMILY, B_MEDIA_RAW_VIDEO, B_MEDIA_ENCODED_VIDEO, - 23 + 18 + }, + { + { + "DV (Digital Video)", + "dvvideo", + 0, + CODEC_ID_DVVIDEO, + { 0 } + }, + B_MISC_FORMAT_FAMILY, + B_MEDIA_RAW_VIDEO, + B_MEDIA_ENCODED_VIDEO, + 5 }, { { diff --git a/src/add-ons/media/plugins/ffmpeg/MuxerTable.cpp b/src/add-ons/media/plugins/ffmpeg/MuxerTable.cpp index 0be7067868..31c0df10a3 100644 --- a/src/add-ons/media/plugins/ffmpeg/MuxerTable.cpp +++ b/src/add-ons/media/plugins/ffmpeg/MuxerTable.cpp @@ -24,6 +24,22 @@ const media_file_format gMuxerTable[] = { "avi", { 0 } }, + { + media_file_format::B_WRITABLE + | media_file_format::B_KNOWS_RAW_VIDEO + | media_file_format::B_KNOWS_RAW_AUDIO + | media_file_format::B_KNOWS_ENCODED_VIDEO + | media_file_format::B_KNOWS_ENCODED_AUDIO, + { 0 }, + B_MISC_FORMAT_FAMILY, + 100, + { 0 }, + "video/x-msvideo", + "DV video format", + "dv", + "dv", + { 0 } + }, { media_file_format::B_WRITABLE | media_file_format::B_KNOWS_RAW_VIDEO diff --git a/src/add-ons/media/plugins/ffmpeg/config.h b/src/add-ons/media/plugins/ffmpeg/config.h index fbbb2c41dc..0dbe8a2f71 100644 --- a/src/add-ons/media/plugins/ffmpeg/config.h +++ b/src/add-ons/media/plugins/ffmpeg/config.h @@ -507,7 +507,7 @@ #define CONFIG_ASV2_ENCODER 0 #define CONFIG_BMP_ENCODER 0 #define CONFIG_DNXHD_ENCODER 0 -#define CONFIG_DVVIDEO_ENCODER 0 +#define CONFIG_DVVIDEO_ENCODER 1 #define CONFIG_FFV1_ENCODER 0 #define CONFIG_FFVHUFF_ENCODER 0 #define CONFIG_FLASHSV_ENCODER 0 @@ -548,7 +548,7 @@ #define CONFIG_WMV2_ENCODER 0 #define CONFIG_ZLIB_ENCODER 0 #define CONFIG_ZMBV_ENCODER 0 -#define CONFIG_AAC_ENCODER 0 +#define CONFIG_AAC_ENCODER 1 #define CONFIG_AC3_ENCODER 1 #define CONFIG_ALAC_ENCODER 0 #define CONFIG_FLAC_ENCODER 0 @@ -792,7 +792,7 @@ #define CONFIG_DIRAC_MUXER 0 #define CONFIG_DNXHD_MUXER 0 #define CONFIG_DTS_MUXER 0 -#define CONFIG_DV_MUXER 0 +#define CONFIG_DV_MUXER 1 #define CONFIG_EAC3_MUXER 0 #define CONFIG_FFM_MUXER 0 #define CONFIG_FILMSTRIP_MUXER 0