* Enabled libvorbis and libtheora encoders in FFmpeg

* Enabled ogg muxer in MuxerTable.

ogg/vorbis creation successfully tested with MediaConverter.
ogg/theora needs more testing, it seems to work, but I need
to switch from the other vorbis/theora/ogg plugins to the
FFmpeg built-in support, otherwise the current theora stream
is not supported by the old plugin.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38641 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus 2010-09-13 20:25:24 +00:00
parent 0640823932
commit 73e5249c79
5 changed files with 71 additions and 24 deletions

View File

@ -10,7 +10,7 @@
const EncoderDescription gEncoderTable[] = {
{
{
"MPEG4 Video",
"MPEG4 video",
"mpeg4",
0,
CODEC_ID_MPEG4,
@ -23,7 +23,7 @@ const EncoderDescription gEncoderTable[] = {
},
{
{
"MPEG1 Video",
"MPEG1 video",
"mpeg1video",
0,
CODEC_ID_MPEG1VIDEO,
@ -36,7 +36,7 @@ const EncoderDescription gEncoderTable[] = {
},
{
{
"MPEG2 Video",
"MPEG2 video",
"mpeg2video",
0,
CODEC_ID_MPEG2VIDEO,
@ -49,7 +49,20 @@ const EncoderDescription gEncoderTable[] = {
},
{
{
"Raw Audio",
"Theora video",
"theora",
0,
CODEC_ID_THEORA,
{ 0 }
},
B_ANY_FORMAT_FAMILY,
B_MEDIA_RAW_VIDEO,
B_MEDIA_ENCODED_VIDEO,
23
},
{
{
"Raw audio",
"pcm",
0,
0,
@ -72,6 +85,19 @@ const EncoderDescription gEncoderTable[] = {
B_MEDIA_RAW_AUDIO,
B_MEDIA_ENCODED_AUDIO,
10
},
{
{
"Vorbis audio",
"vorbis",
0,
CODEC_ID_VORBIS,
{ 0 }
},
B_ANY_FORMAT_FAMILY,
B_MEDIA_RAW_AUDIO,
B_MEDIA_ENCODED_AUDIO,
10
}
};

View File

@ -32,6 +32,11 @@ Addon ffmpeg :
libavcodec_$(TARGET_ARCH).a
libavutil.a
libswscale.a
libvorbis_ffmpeg.a
libtheora_ffmpeg.a
libogg_ffmpeg.a
be
libmedia.so
libz.a
@ -102,4 +107,7 @@ HAIKU_FFMPEG_DEFINES = [ FDefines $(HAIKU_FFMPEG_DEFINES) ] ;
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavcodec ;
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavformat ;
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavutil ;
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libogg ;
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libswscale ;
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libtheora ;
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libvorbis ;

View File

@ -57,20 +57,20 @@ const media_file_format gMuxerTable[] = {
// TODO: This one rejects unknown codecs. We probably need to define
// a media_format_family for it so that Encoders can announce their support
// for it specifically.
// {
// media_file_format::B_WRITABLE
// | media_file_format::B_KNOWS_ENCODED_VIDEO
// | media_file_format::B_KNOWS_ENCODED_AUDIO,
// { 0 },
// B_AVI_FORMAT_FAMILY,
// 100,
// { 0 },
// "application/ogg",
// "Ogg (Xiph.Org Foundation)",
// "ogg",
// "ogg",
// { 0 }
// },
{
media_file_format::B_WRITABLE
| media_file_format::B_KNOWS_ENCODED_VIDEO
| media_file_format::B_KNOWS_ENCODED_AUDIO,
{ 0 },
B_MISC_FORMAT_FAMILY,
100,
{ 0 },
"application/ogg",
"Ogg (Xiph.Org Foundation)",
"ogg",
"ogg",
{ 0 }
},
{
media_file_format::B_WRITABLE
| media_file_format::B_KNOWS_ENCODED_AUDIO,

View File

@ -196,8 +196,8 @@
#define CONFIG_LIBRTMP 0
#define CONFIG_LIBSCHROEDINGER 0
#define CONFIG_LIBSPEEX 0
#define CONFIG_LIBTHEORA 0
#define CONFIG_LIBVORBIS 0
#define CONFIG_LIBTHEORA 1
#define CONFIG_LIBVORBIS 1
#define CONFIG_LIBVPX 0
#define CONFIG_LIBX264 0
#define CONFIG_LIBXVID 0
@ -585,8 +585,8 @@
#define CONFIG_LIBMP3LAME_ENCODER 0
#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
#define CONFIG_LIBSCHROEDINGER_ENCODER 0
#define CONFIG_LIBTHEORA_ENCODER 0
#define CONFIG_LIBVORBIS_ENCODER 0
#define CONFIG_LIBTHEORA_ENCODER 1
#define CONFIG_LIBVORBIS_ENCODER 1
#define CONFIG_LIBVPX_ENCODER 0
#define CONFIG_LIBX264_ENCODER 0
#define CONFIG_LIBXVID_ENCODER 0

View File

@ -2,8 +2,12 @@ SubDir HAIKU_TOP src add-ons media plugins ffmpeg libavcodec ;
SubDirHdrs [ FDirName $(SUBDIR) .. ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(TARGET_ARCH) ] ;
SubDirHdrs [ FDirName $(SUBDIR) ../libavutil ] ;
SubDirHdrs [ FDirName $(SUBDIR) ../libswscale ] ;
SubDirHdrs [ FDirName $(SUBDIR) .. libavutil ] ;
SubDirHdrs [ FDirName $(SUBDIR) .. libswscale ] ;
SubDirSysHdrs [ FDirName $(SUBDIR) .. libogg include ] ;
SubDirSysHdrs [ FDirName $(SUBDIR) .. libtheora include ] ;
SubDirSysHdrs [ FDirName $(SUBDIR) .. libvorbis include ] ;
UseLibraryHeaders zlib ;
@ -15,6 +19,7 @@ SubDirCcFlags $(HAIKU_FFMPEG_GCC_EXTRA_FLAGS) ;
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
StaticLibrary libavcodec.a :
4xm.c
8bps.c
@ -183,6 +188,8 @@ StaticLibrary libavcodec.a :
kmvc.c
lcldec.c
# lclenc.c
libtheoraenc.c
libvorbis.c
# ljpegenc.c
loco.c
lpc.c
@ -361,6 +368,12 @@ StaticLibrary libavcodec.a :
zmbv.c
;
# GCC2 needs this in order to find codec.h in each of these directories
# respectively and to find the correct codec.h, we need to define this
# per individual file.
SourceHdrs libvorbis.c : [ FDirName $(SUBDIR) .. libvorbis include vorbis ] ;
SourceHdrs libtheoraenc.c : [ FDirName $(SUBDIR) .. libtheora include theora ] ;
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavcodec
$(TARGET_ARCH) ;