AudioQueue получить неправильные номера пакетов? - PullRequest
1 голос
/ 10 февраля 2012

Мое приложение использует ffmpeg для анализа потоковой передачи mms в буферы и использует Аудио-очередь для воспроизведения буферизованных данных.Теперь я могу подтвердить, что буферизованные данные хороши, но я не могу их воспроизвести.Структура воспроизведения основана на клиенте демо AudioFileStreamExample и может воспроизводить поток http (сервер демо AudioFileStreamExample) .Я замечаю в функции обратного вызова:

void MyPacketsProc(void *inClientData, UInt32 inNumberBytes, 
    UInt32 inNumberPackets, const void *inInputData, 
    AudioStreamPacketDescription *inPacketDescriptions),

Когда я непосредственно воспроизводю http-поток демо AudioFileStreamExample, параметр inNumberPackets в большинстве случаев больше 1;при воспроизведении mms-потока inNumberPackets всегда равен 1. audioQueue воспроизводит только первый пакет, все последние пакеты пропускаются.

Журнал использования http-потока демонстрационной версии AudioFileStreamExample:

*AudioStreamBasicDescription info ----*

SampleRate        :44100.000000
FormatID          :778924083
FormatFlags       :0
BytesPerPacket    :0
FramesPerPacket   :1152
BytesPerFrame     :0
ChannelsPerFrame  :2
BitsPerChannel    :0

got data.  bytes: 1253  packets: 2
packetSize:626   
kAQBufSize:24576

bytesFilled:0
packetSize:627   


kAQBufSize:24576
bytesFilled:626

got data.  bytes: 627  packets: 1
packetSize:627   

kAQBufSize:24576

bytesFilled:1253

Журнал использования разобранного потока mms:

*AudioStreamBasicDescription info ----*

SampleRate        :48000.000000
FormatID          :1819304813
FormatFlags       :12
BytesPerPacket    :4
FramesPerPacket   :1
BytesPerFrame     :4
ChannelsPerFrame  :2
BitsPerChannel    :16

got data.  bytes: 4498  packets: 1


packetSize:216      
kAQBufSize:24576    
bytesFilled:0    

got data.  bytes: 1090  packets: 1


packetSize:576       
kAQBufSize:24576    
bytesFilled:216

got data.  bytes: 3064  packets: 1


packetSize:576     
kAQBufSize:24576    
bytesFilled:792

got data.  bytes: 3978  packets: 1


packetSize:252       
kAQBufSize:24576    
bytesFilled:1368

Я не знаю, как решить эту проблему.Кажется, что функция MyPacketsProc получает неправильные параметры, но как это исправить?

большое спасибо.

1 Ответ

0 голосов
/ 05 сентября 2012

Та же проблема случается и со мной, кажется, что это происходит, когда обратный вызов AudioQueue не запускается вовремя.

...