Example #1
0
void Streamer::encodeSilence(int milliseconds)
{
    if (m_audioGrabber) {
        AudioFormat format = m_audioGrabber->format();

        int sampleSize = 0;
        switch (format.format()) {
        case AudioFormat::SignedInt8:
            sampleSize = 1;
            break;

        case AudioFormat::SignedInt16:
            sampleSize = 2;
            break;

        case AudioFormat::SignedInt24:
            sampleSize = 3;
            break;

        case AudioFormat::SignedInt32:
        case AudioFormat::Float32:
            sampleSize = 4;
            break;

        case AudioFormat::Float64:
            sampleSize = 8;
            break;
        }


        int silenceDataSize = ((format.sampleRate() * format.channelCount() * sampleSize) / 1000) * milliseconds;
        QByteArray silenceData;
        silenceData.fill('\0', silenceDataSize);
        m_encoder->encodeAudioData(silenceData, -1);
    }
}