amit meshram - 2017-02-19

Dear XValex,

This is Amit, i need help in Matrix mixer for winamp 8.1 out support plugin.
please check the code
i have problem in (int outMixer::Write(char *buf, int len))

int outMixer::Write(char *buf, int len)
{
int res = 0;
m_cpu.start();

// Chgt de mode de lecture s'il a changé
if (m_outputchanged)
{
    this->Flush(0);
    this->Close();      
    this->Open(m_in_spk.sample_rate, spk2nch(m_in_spk), spk2bps(m_in_spk), 0, 0);
    m_outputchanged = false;
}
//traitement du signal par valib
//m_chunk.set_rawdata(m_in_spk, (uint8_t*)buf, len);
//if (!m_chunk.is_dummy() && !m_chunk.is_empty())
//m_dvd_graph.process(&m_chunk);

//// lecture du signal modifié
//while (!m_dvd_graph.is_empty())
//{
//m_dvd_graph.get_chunk(&m_chunk);
//if (!m_chunk.is_dummy() && !m_chunk.is_empty())
//res = m_pOut->Write((char*)m_chunk.rawdata, m_chunk.size);
//}
//======================Need to work here=================

m_pOutDsound->Open(m_in_spk, 2000, 100);
m_dvd_graph.open(m_in_spk);

    //Chunk in(*chunk), out;

while (m_dvd_graph.dec.process(m_pOutDsound->in,m_pOutDsound->out))
{
    if(m_dvd_graph.new_stream())
    {
        Speakers spk = m_dvd_graph.dec.get_output();
        m_dvd_graph.proc.get_output();
        m_in_spk = m_pOutDsound->m_dsound.get_input();
        m_in_spk = m_dvd_graph.get_output();
        m_dvd_graph.open_throw(m_in_spk);

        m_chunk.set_rawdata((uint8_t*)buf, len);

        if (!m_chunk.is_dummy() && !m_chunk.is_empty())
        {
            m_dvd_graph.process(m_pOutDsound->in, m_pOutDsound->out);       
            res = m_pOut->Write((char*)m_pOutDsound->in.rawdata, m_pOutDsound->in.size);                
        }
    }
}
//===========================================================

// On force la réouverture si le mode ne correspond pas
int out_format = m_dvd_graph.get_output().format;
if (out_format > 0 &&
    (m_output_mode == OUTPUT_MODE_NORMAL && out_format == FORMAT_SPDIF ||
    m_output_mode == OUTPUT_MODE_SPDIF && out_format != FORMAT_SPDIF))
        m_outputchanged = true;

m_cpu.stop();
return res;

}

//=============================================

Get_chunk method is missing from valib2, i study ac3filter 2.6 filter, there also i didn't got the solution for the
int outMixer::Write(char *buf, int len) function.
Please Help