diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2009-07-14 16:12:55 +0200 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2009-07-14 16:14:34 +0200 |
commit | ab3bed81a5f6c52f6739e6d33fff197b3c889b1b (patch) | |
tree | f55b440e47cc293ee2498c68b5e4d267651e5274 /ext/pulse | |
parent | 4732b9bfa445812104c610e58957337ae2795653 (diff) |
pulsesink: add 24bit sample formats
Add check for pulseaudio 0.9.15 and enable 24bits samples in that case.
Diffstat (limited to 'ext/pulse')
-rw-r--r-- | ext/pulse/pulsesink.c | 15 | ||||
-rw-r--r-- | ext/pulse/pulseutil.c | 10 |
2 files changed, 24 insertions, 1 deletions
diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index c3f37548..1c633c0b 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -516,7 +516,6 @@ gst_pulsering_stream_underflow_cb (pa_stream * s, void *userdata) GST_WARNING_OBJECT (psink, "Got underflow"); } - static void gst_pulsering_stream_overflow_cb (pa_stream * s, void *userdata) { @@ -1320,9 +1319,23 @@ gst_pulsesink_base_init (gpointer g_class) "signed = (boolean) TRUE, " "width = (int) 32, " "depth = (int) 32, " + "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 32 ];" +#if HAVE_PULSE_0_9_15 + "audio/x-raw-int, " + "endianness = (int) { " ENDIANNESS " }, " + "signed = (boolean) TRUE, " + "width = (int) 24, " + "depth = (int) 24, " "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 32 ];" "audio/x-raw-int, " + "endianness = (int) { " ENDIANNESS " }, " + "signed = (boolean) TRUE, " + "width = (int) 32, " + "depth = (int) 24, " + "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 32 ];" +#endif + "audio/x-raw-int, " "signed = (boolean) FALSE, " "width = (int) 8, " "depth = (int) 8, " diff --git a/ext/pulse/pulseutil.c b/ext/pulse/pulseutil.c index 169c55b7..6fbf8377 100644 --- a/ext/pulse/pulseutil.c +++ b/ext/pulse/pulseutil.c @@ -91,6 +91,16 @@ gst_pulse_fill_sample_spec (GstRingBufferSpec * spec, pa_sample_spec * ss) ss->format = PA_SAMPLE_S32LE; else if (spec->format == GST_S32_BE && spec->width == 32) ss->format = PA_SAMPLE_S32BE; +#if HAVE_PULSE_0_9_15 + else if (spec->format == GST_S24_3LE && spec->width == 24) + ss->format = PA_SAMPLE_S24LE; + else if (spec->format == GST_S24_3BE && spec->width == 24) + ss->format = PA_SAMPLE_S24BE; + else if (spec->format == GST_S24_LE && spec->width == 32) + ss->format = PA_SAMPLE_S24_32LE; + else if (spec->format == GST_S24_BE && spec->width == 32) + ss->format = PA_SAMPLE_S24_32BE; +#endif else return FALSE; |