Add IEC958_NONAUDIO output flag to MSD patches

For the 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.

Test: manual test on BCM TV device
Change-Id: I8f09f936ccce63985df4ad00433299b063769419
gugelfrei
Dean Wheatley 5 years ago committed by Mikhail Naganov
parent 2638df9bf8
commit 5c9f0837b3

@ -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);

Loading…
Cancel
Save