[vlc-devel] commit: Fix building AAC profile selection for outdated ffmpeg versions. ( Jean-Paul Saman )
git version control
git at videolan.org
Tue Mar 11 11:44:55 CET 2008
vlc | branch: master | Jean-Paul Saman <jpsaman at videolan.org> | Tue Mar 11 11:44:35 2008 +0100| [c13a0a1dca2616c79edd269788d85212da0275e1]
Fix building AAC profile selection for outdated ffmpeg versions.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c13a0a1dca2616c79edd269788d85212da0275e1
---
modules/codec/ffmpeg/encoder.c | 13 +++++++++++--
modules/codec/ffmpeg/ffmpeg.c | 2 ++
modules/codec/ffmpeg/ffmpeg.h | 2 ++
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/modules/codec/ffmpeg/encoder.c b/modules/codec/ffmpeg/encoder.c
index 1c0adc4..c8021db 100644
--- a/modules/codec/ffmpeg/encoder.c
+++ b/modules/codec/ffmpeg/encoder.c
@@ -141,8 +141,9 @@ struct encoder_sys_t
int i_quality; /* for VBR */
float f_lumi_masking, f_dark_masking, f_p_masking, f_border_masking;
int i_luma_elim, i_chroma_elim;
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
int i_aac_profile; /* AAC profile to use.*/
-
+#endif
/* Used to work around stupid timestamping behaviour in libavcodec */
uint64_t i_framenum;
mtime_t pi_delay_pts[MAX_FRAME_DELAY];
@@ -154,7 +155,11 @@ static const char *ppsz_enc_options[] = {
"interlace", "i-quant-factor", "noise-reduction", "mpeg4-matrix",
"trellis", "qscale", "strict", "lumi-masking", "dark-masking",
"p-masking", "border-masking", "luma-elim-threshold",
- "chroma-elim-threshold", "aac-profile", NULL
+ "chroma-elim-threshold",
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
+ "aac-profile",
+#endif
+ NULL
};
static const uint16_t mpa_bitrate_tab[2][15] =
@@ -371,6 +376,7 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
var_Get( p_enc, ENC_CFG_PREFIX "chroma-elim-threshold", &val );
p_sys->i_chroma_elim = val.i_int;
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
var_Get( p_enc, ENC_CFG_PREFIX "aac-profile", &val );
p_sys->i_aac_profile = FF_PROFILE_UNKNOWN;
if( val.psz_string && *val.psz_string )
@@ -392,6 +398,7 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
}
}
if( val.psz_string ) free( val.psz_string );
+#endif
if( p_enc->fmt_in.i_cat == VIDEO_ES )
{
@@ -558,10 +565,12 @@ int E_(OpenEncoder)( vlc_object_t *p_this )
p_context->sample_rate = p_enc->fmt_in.audio.i_rate;
p_context->channels = p_enc->fmt_in.audio.i_channels;
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
/* Ignore FF_PROFILE_UNKNOWN */
if( ( p_sys->i_aac_profile >= FF_PROFILE_AAC_MAIN ) &&
( p_enc->fmt_out.i_codec == VLC_FOURCC('m','p','4','a') ) )
p_context->profile = p_sys->i_aac_profile;
+#endif
}
/* Misc parameters */
diff --git a/modules/codec/ffmpeg/ffmpeg.c b/modules/codec/ffmpeg/ffmpeg.c
index ee9a7ea..5d00ec1 100644
--- a/modules/codec/ffmpeg/ffmpeg.c
+++ b/modules/codec/ffmpeg/ffmpeg.c
@@ -198,9 +198,11 @@ vlc_module_begin();
add_integer( ENC_CFG_PREFIX "chroma-elim-threshold", 0, NULL,
ENC_CHROMA_ELIM_TEXT, ENC_CHROMA_ELIM_LONGTEXT, VLC_TRUE );
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
/* Audio AAC encoder profile */
add_string( ENC_CFG_PREFIX "aac-profile", "main", NULL,
ENC_PROFILE_TEXT, ENC_PROFILE_LONGTEXT, VLC_TRUE );
+#endif
#if defined(HAVE_LIBAVFORMAT_AVFORMAT_H) || defined(HAVE_FFMPEG_AVFORMAT_H) || defined(HAVE_LIBAVFORMAT_TREE)
diff --git a/modules/codec/ffmpeg/ffmpeg.h b/modules/codec/ffmpeg/ffmpeg.h
index 05257ed..936f78a 100644
--- a/modules/codec/ffmpeg/ffmpeg.h
+++ b/modules/codec/ffmpeg/ffmpeg.h
@@ -306,10 +306,12 @@ N_("<filterName>[:<option>[:<option>...]][[,|/][-]<filterName>[:<option>...]]...
"the PSNR isn't much changed (default: 0.0). The H264 specification " \
"recommends 7." )
+#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(40<<8)+4)
#define ENC_PROFILE_TEXT N_( "Specify AAC audio profile to use" )
#define ENC_PROFILE_LONGTEXT N_( "Specify the AAC audio profile to use " \
"for encoding the audio bitstream. It takes the following options: " \
"main, low, ssr (not supported) and ltp (default: main)" )
+#endif
#define SCALEMODE_TEXT N_("Scaling mode")
#define SCALEMODE_LONGTEXT N_("Scaling mode to use.")
More information about the vlc-devel
mailing list