[FFmpeg-cvslog] Support s32 output via alsa audio device.

Carl Eugen Hoyos git at videolan.org
Tue Apr 5 11:57:14 CEST 2011


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Tue Apr  5 10:53:50 2011 +0200| [4d1d6f7a3c0a8c9235a5b26c4c5347d23b9ae091] | committer: Carl Eugen Hoyos

Support s32 output via alsa audio device.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4d1d6f7a3c0a8c9235a5b26c4c5347d23b9ae091
---

 libavdevice/alsa-audio-common.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/libavdevice/alsa-audio-common.c b/libavdevice/alsa-audio-common.c
index ce1d750..bf22702 100644
--- a/libavdevice/alsa-audio-common.c
+++ b/libavdevice/alsa-audio-common.c
@@ -36,6 +36,8 @@
 static av_cold snd_pcm_format_t codec_id_to_pcm_format(int codec_id)
 {
     switch(codec_id) {
+        case CODEC_ID_PCM_S32LE: return SND_PCM_FORMAT_S32_LE;
+        case CODEC_ID_PCM_S32BE: return SND_PCM_FORMAT_S32_BE;
         case CODEC_ID_PCM_S16LE: return SND_PCM_FORMAT_S16_LE;
         case CODEC_ID_PCM_S16BE: return SND_PCM_FORMAT_S16_BE;
         case CODEC_ID_PCM_S8:    return SND_PCM_FORMAT_S8;
@@ -83,6 +85,8 @@ static void alsa_reorder_ ## NAME ## _out_71(const void *in_v, void *out_v, int
 
 REORDER_OUT_51(s16, int16_t)
 REORDER_OUT_71(s16, int16_t)
+REORDER_OUT_51(s32, int32_t)
+REORDER_OUT_71(s32, int32_t)
 
 #define REORDER_DUMMY ((void *)1)
 
@@ -98,6 +102,12 @@ static av_cold ff_reorder_func find_reorder_func(int codec_id,
         layout == AV_CH_LAYOUT_7POINT1 ?
             out ? alsa_reorder_s16_out_71 : NULL :
             NULL :
+    codec_id == CODEC_ID_PCM_S32LE || codec_id == CODEC_ID_PCM_S32BE ?
+        layout == AV_CH_LAYOUT_5POINT1_BACK || layout == AV_CH_LAYOUT_5POINT1 ?
+            out ? alsa_reorder_s32_out_51 : NULL :
+        layout == AV_CH_LAYOUT_7POINT1 ?
+            out ? alsa_reorder_s32_out_71 : NULL :
+           NULL :
         NULL;
 }
 



More information about the ffmpeg-cvslog mailing list