From 9b1820fbd4645f5a3e9d93ca9c0a5fa4a8d68253 Mon Sep 17 00:00:00 2001 From: smorlat Date: Wed, 25 Mar 2009 12:55:26 +0000 Subject: [PATCH] check that ffmpeg encoder are present before registering them. git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@368 3f6dc0c8-ddfe-455d-9043-3cd528dc4637 --- linphone/mediastreamer2/src/mscommon.c | 3 +++ linphone/mediastreamer2/src/videoenc.c | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/linphone/mediastreamer2/src/mscommon.c b/linphone/mediastreamer2/src/mscommon.c index ae5945669..ddd0f3b3f 100644 --- a/linphone/mediastreamer2/src/mscommon.c +++ b/linphone/mediastreamer2/src/mscommon.c @@ -21,6 +21,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "mediastreamer-config.h" #endif +extern void __register_ffmpeg_encoders_if_possible(void); + #include "mediastreamer2/mscommon.h" #include "mediastreamer2/msfilter.h" @@ -534,6 +536,7 @@ void ms_init(){ ms_web_cam_manager_register_desc(wm,ms_web_cam_descs[i]); } } + __register_ffmpeg_encoders_if_possible(); #endif ms_message("Loading plugins"); ms_load_plugins(PACKAGE_PLUGINS_DIR); diff --git a/linphone/mediastreamer2/src/videoenc.c b/linphone/mediastreamer2/src/videoenc.c index f4eb6b7b4..8085e9b5a 100644 --- a/linphone/mediastreamer2/src/videoenc.c +++ b/linphone/mediastreamer2/src/videoenc.c @@ -699,9 +699,9 @@ MSFilterDesc ms_snow_enc_desc={ .id=MS_SNOW_ENC_ID, .name="MSSnowEnc", .text=N_("The snow codec is royalty-free and is open-source. \n" - "It uses innovative techniques that makes it one of the best video " + "It uses innovative techniques that makes it one of most promising video " "codec. It is implemented within the ffmpeg project.\n" - "However it is under development and compatibility with other versions " + "However it is under development, quite unstable and compatibility with other versions " "cannot be guaranteed."), .category=MS_FILTER_ENCODER, .enc_fmt="x-snow", @@ -717,8 +717,21 @@ MSFilterDesc ms_snow_enc_desc={ #endif +void __register_ffmpeg_encoders_if_possible(void){ + ms_ffmpeg_check_init(); + if (avcodec_find_encoder(CODEC_ID_MPEG4)) + ms_filter_register(&ms_mpeg4_enc_desc); + if (avcodec_find_encoder(CODEC_ID_H263)){ + ms_filter_register(&ms_h263_enc_desc); + ms_filter_register(&ms_h263_old_enc_desc); + } + if (avcodec_find_encoder(CODEC_ID_SNOW)) + ms_filter_register(&ms_snow_enc_desc); +} + +/* MS_FILTER_DESC_EXPORT(ms_mpeg4_enc_desc) MS_FILTER_DESC_EXPORT(ms_h263_enc_desc) MS_FILTER_DESC_EXPORT(ms_h263_old_enc_desc) MS_FILTER_DESC_EXPORT(ms_snow_enc_desc) - +*/