AEAudioFormat outputFormat;
if (m_mode == MODE_RAW)
{
+ inputFormat.m_frames = m_sinkFormat.m_frames;
outputFormat = inputFormat;
sinkInputFormat = m_sinkFormat;
}
m_settings.guisoundmode = CSettings::Get().GetInt("audiooutput.guisoundmode");
m_settings.passthrough = m_settings.config == AE_CONFIG_FIXED ? false : CSettings::Get().GetBool("audiooutput.passthrough");
+ if (!m_sink.HasPassthroughDevice())
+ m_settings.passthrough = false;
m_settings.ac3passthrough = CSettings::Get().GetBool("audiooutput.ac3passthrough");
m_settings.ac3transcode = CSettings::Get().GetBool("audiooutput.ac3transcode");
m_settings.eac3passthrough = CSettings::Get().GetBool("audiooutput.eac3passthrough");
for(unsigned int j=0; j<m_format.m_channelLayout.Count(); j++)
{
idx = m_remapper->GetAVChannelIndex(m_format.m_channelLayout[j], avLayout);
- if (idx == i)
+ if (idx == (int)i)
{
ffmpegLayout += m_format.m_channelLayout[j];
break;
for(unsigned int j=0; j<m_format.m_channelLayout.Count(); j++)
{
idx = m_remapper->GetAVChannelIndex(m_format.m_channelLayout[j], avLayout);
- if (idx == i)
+ if (idx == (int)i)
{
remapLayout += ffmpegLayout[j];
break;
bool CAESinkPi::Initialize(AEAudioFormat &format, std::string &device)
{
+ char response[80];
+ /* if we are raw need to let gpu know */
+ if (AE_IS_RAW(format.m_dataFormat))
+ {
+ vc_gencmd(response, sizeof response, "hdmi_stream_channels 1");
+ m_passthrough = true;
+ }
+ else
+ {
+ vc_gencmd(response, sizeof response, "hdmi_stream_channels 0");
+ m_passthrough = false;
+ }
+
m_initDevice = device;
m_initFormat = format;
// setup for a 50ms sink feed from SoftAE
uint32_t m_submitted;
OMX_AUDIO_PARAM_PCMMODETYPE m_pcm_input;
COMXCoreComponent m_omx_render;
+ bool m_passthrough;
};
#endif