2017-11-20 19 views
0

이 문제를 연구하면서 표준에서이 변수에 대한 직접적인 설명을 찾을 수 없습니다. 실제로 ICY 표준에 대한 적절한 설명을 찾을 수 없습니다.빙판의 값 유형

일부 프로그래머는이 값이 부호있는 정수 (예 : here) 여야한다고 생각합니다. 그러나 또 다른 example은이 값이 부호가있는 정수 정의 외부에있는 32768 일 수 있다고 말합니다.

서로 다른 상황에서 "부호있는 정수"는 2 바이트 크기 또는 4 바이트 크기를 의미 할 수 있음을 이해합니다. 그렇다면 값의 크기는 비트 단위로 무엇입니까 (서명 된 경우 부호 포함)? 내가 Verilog을 코딩하고 불필요한 비트를 위해 로직을 쓰고 싶지 않기 때문에 그것을 알아야합니다.

P. "metaint"는 메타 정보 간격, int이 정수 유형을 의미하지 않아야 함을 의미합니다.

답변

1

icy-metaint은 각 메타 데이터 청크 간의 미디어 스트림 데이터 바이트 수입니다.

icy-metaint 값이 8192 인 인터넷 라디오 방송국이 있다고 가정합니다.

[8192 bytes audio] [metadata] [8192 bytes audio] [metadata] … 

이의이 간격의 크기는 서버와 구성에 달려있다 : 서버의 데이터는 다음과 같이 보일 것입니다. 다양한 값을 처리 할 수 ​​있어야합니다. 현실적으로 32 비트 부호없는 정수이면 충분합니다.

저는 개인적으로 64KB만큼 높은 메타 데이터 간격을 보았습니다. 괴상한 상황에서 더 높은 점수를 받으면 나는 놀라지 않을 것입니다. 8KB와 16KB는 매우 일반적입니다. 또한 이것과 같은 정상적인 값을 가질 필요는 없습니다 ... 15,000 바이트와 같은 것도 보았습니다.

+0

감사합니다. 이 값에 대해 문서화 된 사양을 본 적이 있습니까? ICY 프로토콜 사양이 어딘가에 있어야합니다! – Anonymous

+1

@Anonymous 사실, 그렇지 않습니다. SHOUTcast는 닫힌 소스이며 사양이 없습니다. Icecast 개발자는 소스 코드를 살펴 보도록 안내 할 것입니다. 나는 사람들에게 내 Stack Overflow 해답을 보라고 말한다. https://stackoverflow.com/questions/4911062/pulling-track-info-from-an-audio-stream-using-php/4914538#4914538 완벽하게 작성된 IETF 사양이 있다면 관련이 없습니다. 현실은 16 비트 정수 이상을 저장할 필요가 있고 제대로 구성된 스트림이 메타 데이터 간격에 32 비트 이상을 사용하지 않는다는 것입니다. 따라서 32 비트 int를 사용해야합니다. – Brad