2012-06-05 16 views
1

我可能會問錯的問題,但我在這方面的知識非常有限。是GSM6.10音頻格式塊還是流爲基礎?

我正在使用acmStreamConvert將PCM轉換爲GSM(6.10)。

音頻格式:8kHz的,16位,單聲道

對於我使用640個字節(320個樣本)的PCM緩衝器大小。對於GSM緩衝區,我使用了65個字節。我的理解是,GSM「總是」將320個採樣轉換爲65個字節。

我問「塊或流」的原因是我想知道如果我可以安全地轉換多個音頻流(實時)使用相同的acmStreamConvert句柄?我看到該函數有一些標誌爲ACM_STREAMCONVERTF_STARTACM_STREAMCONVERTF_ENDACM_STREAMCONVERTF_BLOCKALIGN,但它是否需要我使用GSM的這個開始/結束序列?我知道某些使用頭部/尾部的格式可能需要,但我希望這不是GSM格式所必需的?

我正在組VOIP客戶端,每個客戶端發送GSM格式,然後需要在播放之前轉換到PCM。我希望每個客戶端都不需要一個ACM句柄。

回答

1

基於流,或者至少是ACM API的用法。試圖爲多個流使用相同的ACM對象/句柄會產生不希望的結果。我懷疑這也意味着它不會處理丟失的數據包以及其他編解碼器可能(尚未確認該部分)。