RIFF Header Parsing 문제
안녕하세요.
RIFF 에 관해서 질문 드립니다. ^^;
동영상의 헤더에는 파일에 대한 정보가 담겨 있습니다.
지금은 RIFF 표준의 헤더 정보를 파싱하고 있고, 해당 파일의 포맷은 DIVX 입니다.
파싱에 대한 결과물은 파일의 재생시간 입니다.
지금의 방법은 비디오 스트림이나 오디오 스트림의 정보에 있는 여러 인자(샘플링수 등등)들을
계산해서 재생시간을 구하는 것입니다.
결과는 잘 나옵니다. --;
문제는 앞서 비디오 혹은 오디오 스트림임을 나타내는 4byte의 비트 값 ASCII로 auds 혹은 vids 을
파싱의 시작 인덱스로 잡고 있는데 이게 잠재적이고도 므흣한 버그를 가지고 있었더란 것입니다.
파일의 시작 인덱스 부터 4byte 씩 읽어서 파싱하고 있었는데 어떤 동영상 파일은 정확히 4의 배수 위치에
auds나 vids 가 있는 반면, 어떤 동영상 파일은 그렇지 않더군요.
물론 1byte 씩 읽으면 해결할 수 있지만, 효율성이나 속도 때문에 차선책으로 두고 있습니다.
설명이 길었는데, ^^;
궁금한 것은 이 비디오 혹은 오디오 스트림임을 나타내는 4byte의 비트 값(auds 혹은 vids) 의
앞부분에 위치한 정보들이 4byte 단위로 저장되는 것이 아니라면 최소 2byte로 저장되는 것인지,
혹은 1byte 로도 저장될 수 있는지에 대한 것입니다. 그리고 제가 하는 방법에 또 다른 문제가 있는지도 궁급합니다.
제 설명이 부족해서 질문이 이해가 안되시면 말씀해 주세요.
답변 부탁드립니다. ^^
댓글 달기