2012-06-05 2 views
1

잘못된 질문을하고있을 수도 있지만이 분야에 대한 지식은 매우 제한적입니다.GSM6.10 오디오 형식 블록 또는 스트림 기반입니까?

PCM을 GSM (6.10)으로 변환하려면 acmStreamConvert을 사용하고 있습니다.

오디오 형식 : 8kHz의 16 비트, I는 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 개체/핸들을 사용하면 원하지 않는 결과가 발생합니다. 나는 이것이 다른 코덱뿐만 아니라 손실 된 패킷을 처리하지 않는다는 것을 의미한다고 생각한다.

관련 문제