[vlc-commits] commit: Moved out avcodec SampleFormat -> VLC formats to its own function. (Laurent Aimar )

git at videolan.org git at videolan.org
Sun May 2 00:37:17 CEST 2010


vlc/vlc-1.1 | branch: master | Laurent Aimar <fenrir at videolan.org> | Sun May  2 00:01:06 2010 +0200| [efb9892a8576e78d4049b71b3ea68d80d83eb423] | committer: Jean-Baptiste Kempf 

Moved out avcodec SampleFormat -> VLC formats to its own function.

(cherry picked manually from commit cc4676bf4ad78c0d0db56cd4eb687478bd2bb190)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=efb9892a8576e78d4049b71b3ea68d80d83eb423
---

 modules/codec/avcodec/audio.c   |   38 ++++++++++++++++++++++----------------
 modules/codec/avcodec/avcodec.h |    1 +
 2 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
index 0aaacee..b303fef 100644
--- a/modules/codec/avcodec/audio.c
+++ b/modules/codec/avcodec/audio.c
@@ -469,41 +469,47 @@ static const uint64_t pi_channels_map[][2] =
 };
 #endif
 
-static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+void GetVlcAudioFormat( vlc_fourcc_t *pi_codec, unsigned *pi_bits, int i_sample_fmt )
 {
-    decoder_sys_t *p_sys = p_dec->p_sys;
-
-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 51, 65, 0 )
-    switch( p_sys->p_context->sample_fmt )
+    switch( i_sample_fmt )
     {
     case SAMPLE_FMT_U8:
-        p_dec->fmt_out.i_codec = VLC_CODEC_U8;
-        p_dec->fmt_out.audio.i_bitspersample = 8;
+        *pi_codec = VLC_CODEC_U8;
+        *pi_bits = 8;
         break;
     case SAMPLE_FMT_S32:
-        p_dec->fmt_out.i_codec = VLC_CODEC_S32N;
-        p_dec->fmt_out.audio.i_bitspersample = 32;
+        *pi_codec = VLC_CODEC_S32N;
+        *pi_bits = 32;
         break;
     case SAMPLE_FMT_FLT:
-        p_dec->fmt_out.i_codec = VLC_CODEC_FL32;
-        p_dec->fmt_out.audio.i_bitspersample = 32;
+        *pi_codec = VLC_CODEC_FL32;
+        *pi_bits = 32;
         break;
     case SAMPLE_FMT_DBL:
-        p_dec->fmt_out.i_codec = VLC_CODEC_FL64;
-        p_dec->fmt_out.audio.i_bitspersample = 64;
+        *pi_codec = VLC_CODEC_FL64;
+        *pi_bits = 64;
         break;
 
     case SAMPLE_FMT_S16:
     default:
-        p_dec->fmt_out.i_codec = VLC_CODEC_S16N;
-        p_dec->fmt_out.audio.i_bitspersample = 16;
+        *pi_codec = VLC_CODEC_S16N;
+        *pi_bits = 16;
         break;
     }
+}
+static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+{
+    decoder_sys_t *p_sys = p_dec->p_sys;
+
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 51, 65, 0 )
+    GetVlcAudioFormat( &p_dec->fmt_out.i_codec,
+                       &p_dec->fmt_out.audio.i_bitspersample,
+                       p_sys->p_context->sample_fmt );
 #else
     p_dec->fmt_out.i_codec = VLC_CODEC_S16N;
     p_dec->fmt_out.audio.i_bitspersample = 16;
 #endif
-    p_dec->fmt_out.audio.i_rate     = p_sys->p_context->sample_rate;
+    p_dec->fmt_out.audio.i_rate = p_sys->p_context->sample_rate;
 
     /* */
 #if defined(LIBAVCODEC_AUDIO_LAYOUT)
diff --git a/modules/codec/avcodec/avcodec.h b/modules/codec/avcodec/avcodec.h
index 3cfc0d7..b14b957 100644
--- a/modules/codec/avcodec/avcodec.h
+++ b/modules/codec/avcodec/avcodec.h
@@ -29,6 +29,7 @@ int GetVlcFourcc( int i_ffmpeg_codec, int *pi_cat,
 int TestFfmpegChroma( const int i_ffmpeg_id, const vlc_fourcc_t i_vlc_fourcc );
 int GetFfmpegChroma( int *i_ffmpeg_chroma, const video_format_t fmt );
 int GetVlcChroma( video_format_t *fmt, const int i_ffmpeg_chroma );
+void GetVlcAudioFormat( vlc_fourcc_t *, unsigned *pi_bits, int i_sample_fmt );
 
 
 picture_t * DecodeVideo    ( decoder_t *, block_t ** );



More information about the vlc-commits mailing list