|
|
|
@ -1355,6 +1355,14 @@ status_t AudioPolicyManager::getBestMsdAudioProfileFor(const sp<DeviceDescriptor
|
|
|
|
|
// For encoded streams force direct flag to prevent downstream mixing.
|
|
|
|
|
sinkConfig->flags.output = static_cast<audio_output_flags_t>(
|
|
|
|
|
sinkConfig->flags.output | AUDIO_OUTPUT_FLAG_DIRECT);
|
|
|
|
|
if (audio_is_iec61937_compatible(sinkConfig->format)) {
|
|
|
|
|
// For formats compatible with IEC61937 encapsulation, assume that
|
|
|
|
|
// the record thread input from MSD is IEC61937 framed (for proportional buffer sizing).
|
|
|
|
|
// Add the AUDIO_OUTPUT_FLAG_IEC958_NONAUDIO flag so downstream HAL can distinguish between
|
|
|
|
|
// raw and IEC61937 framed streams.
|
|
|
|
|
sinkConfig->flags.output = static_cast<audio_output_flags_t>(
|
|
|
|
|
sinkConfig->flags.output | AUDIO_OUTPUT_FLAG_IEC958_NONAUDIO);
|
|
|
|
|
}
|
|
|
|
|
sourceConfig->sample_rate = bestSinkConfig.sample_rate;
|
|
|
|
|
// Specify exact channel mask to prevent guessing by bit count in PatchPanel.
|
|
|
|
|
sourceConfig->channel_mask = audio_channel_mask_out_to_in(bestSinkConfig.channel_mask);
|
|
|
|
|