diff options
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; |