opensles: check for device outputs in the mixer

This commit is contained in:
Josep Torra 2012-09-28 15:10:19 +02:00 committed by Sebastian Dröge
parent 1d9f48a33d
commit 78e3b9f428

View file

@ -678,6 +678,8 @@ gst_opensles_ringbuffer_open_device (GstRingBuffer * rb)
}
if (thiz->mode == RB_MODE_SINK_PCM) {
SLOutputMixItf outputMix;
/* Create an output mixer */
result = (*thiz->engineEngine)->CreateOutputMix (thiz->engineEngine,
&thiz->outputMixObject, 0, NULL, NULL);
@ -695,6 +697,24 @@ gst_opensles_ringbuffer_open_device (GstRingBuffer * rb)
(guint32) result);
goto failed;
}
/* Check for output device options */
result = (*thiz->outputMixObject)->GetInterface (thiz->outputMixObject,
SL_IID_OUTPUTMIX, &outputMix);
if (result != SL_RESULT_SUCCESS) {
GST_WARNING_OBJECT (thiz, "outputMix.GetInterface failed(0x%08x)",
(guint32) result);
} else {
SLint32 numDevices;
SLuint32 deviceIDs[16];
gint i;
(*outputMix)->GetDestinationOutputDeviceIDs (outputMix, &numDevices,
deviceIDs);
GST_DEBUG_OBJECT (thiz, "Found %d output devices", (gint) numDevices);
for (i = 0; i < numDevices; i++) {
GST_DEBUG_OBJECT (thiz, " DeviceID: %08x", (guint) deviceIDs[i]);
}
}
}
GST_DEBUG_OBJECT (thiz, "device opened");