QAudioInput : compréhension exemple Qt
Bonjour,
Je reprends actuellement l'exemple AudioInput de Qt mais j'aurais besoin d'éclairer deux points :
1) La différence entre les modes pull et push : Tel que je l'ai compris pour l'instant, se serait une différence à l'appel de l'enregistrement via la méthode start. Pull permettrait le passage des données directement au deviceIO alors que Push permet de faire un pré-traitement sur les données lors de la lecture, avant enregistrement. C'est bien ça ?
2) Le traitement effectué à l'intérieur de la méthode writeData() :
Code:
1 2 3 4 5 6 7 8 9
| qint64 AudioInfo::writeData(const char *data, qint64 len)
{
if (m_maxAmplitude) {
Q_ASSERT(m_format.sampleSize() % 8 == 0);
const int channelBytes = m_format.sampleSize() / 8;
const int sampleBytes = m_format.channels() * channelBytes;
Q_ASSERT(len % sampleBytes == 0);
const int numSamples = len / sampleBytes;
// ... |
- Que représentent vraiment channelBytes et sampleBytes ?
- Pourquoi le nombre de bits sur lequel l'échantillon est codé est divisé par 8 ? Je ne comprends pas vraiment le rapport avec les canaux ici.
Merci beaucoup!