[FFmpeg-devel] [PATCH 3/3] lavd/alsa_audio_enc: implementation of query_codec

Lukasz Marek lukasz.m.luki at gmail.com
Fri Nov 1 15:40:50 CET 2013


Implementation of query_codec callback that allow to
check if specific codec is supported by device.

Signed-off-by: Lukasz Marek <lukasz.m.luki at gmail.com>
---
 libavdevice/alsa-audio-enc.c |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/libavdevice/alsa-audio-enc.c b/libavdevice/alsa-audio-enc.c
index 0f4e4a2..d3447a3 100644
--- a/libavdevice/alsa-audio-enc.c
+++ b/libavdevice/alsa-audio-enc.c
@@ -115,6 +115,30 @@ audio_get_output_timestamp(AVFormatContext *s1, int stream,
     *dts = s1->streams[0]->cur_dts - delay;
 }
 
+static int audio_query_codec(enum AVCodecID id, int std_compliance)
+{
+    return id == AV_CODEC_ID_PCM_F64LE ||
+           id == AV_CODEC_ID_PCM_F64BE ||
+           id == AV_CODEC_ID_PCM_F32LE ||
+           id == AV_CODEC_ID_PCM_F32BE ||
+           id == AV_CODEC_ID_PCM_S32LE ||
+           id == AV_CODEC_ID_PCM_S32BE ||
+           id == AV_CODEC_ID_PCM_U32LE ||
+           id == AV_CODEC_ID_PCM_U32BE ||
+           id == AV_CODEC_ID_PCM_S24LE ||
+           id == AV_CODEC_ID_PCM_S24BE ||
+           id == AV_CODEC_ID_PCM_U24LE ||
+           id == AV_CODEC_ID_PCM_U24BE ||
+           id == AV_CODEC_ID_PCM_S16LE ||
+           id == AV_CODEC_ID_PCM_S16BE ||
+           id == AV_CODEC_ID_PCM_U16LE ||
+           id == AV_CODEC_ID_PCM_U16BE ||
+           id == AV_CODEC_ID_PCM_S8    ||
+           id == AV_CODEC_ID_PCM_U8    ||
+           id == AV_CODEC_ID_PCM_MULAW ||
+           id == AV_CODEC_ID_PCM_ALAW ? 1: 0;
+}
+
 AVOutputFormat ff_alsa_muxer = {
     .name           = "alsa",
     .long_name      = NULL_IF_CONFIG_SMALL("ALSA audio output"),
@@ -125,5 +149,6 @@ AVOutputFormat ff_alsa_muxer = {
     .write_packet   = audio_write_packet,
     .write_trailer  = ff_alsa_close,
     .get_output_timestamp = audio_get_output_timestamp,
+    .query_codec    = audio_query_codec,
     .flags          = AVFMT_NOFILE,
 };
-- 
1.7.10.4



More information about the ffmpeg-devel mailing list