Update of /cvsroot/pure-data/externals/unauthorized/mp3cast~ In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20508
Modified Files: mp3cast~.c Log Message: re-added Carmen's MinGW port and my Darwin port
Index: mp3cast~.c =================================================================== RCS file: /cvsroot/pure-data/externals/unauthorized/mp3cast~/mp3cast~.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** mp3cast~.c 25 Feb 2006 19:58:40 -0000 1.6 --- mp3cast~.c 29 Mar 2006 16:39:42 -0000 1.7 *************** *** 29,33 ****
! #ifdef NT #pragma warning( disable : 4244 ) #pragma warning( disable : 4305 ) --- 29,33 ----
! #ifdef _MSC_VER #pragma warning( disable : 4244 ) #pragma warning( disable : 4305 ) *************** *** 43,51 **** #include <fcntl.h> #include <sys/stat.h> ! #ifndef MACOSX #include <malloc.h> #endif ! #include <ctype.h> ! #ifdef UNIX #include <unistd.h> #include <sys/socket.h> --- 43,58 ---- #include <fcntl.h> #include <sys/stat.h> ! #include <ctype.h> ! ! #ifndef __APPLE__ #include <malloc.h> #endif ! ! #ifdef _WIN32 ! #include <io.h> ! #include <windows.h> ! #include <winsock.h> ! #include <windef.h> ! #else #include <unistd.h> #include <sys/socket.h> *************** *** 54,68 **** #include <time.h> #include <sys/time.h> - #include <lame/lame.h> /* lame encoder stuff */ - #include "mpg123.h" #define SOCKET_ERROR -1 - #else - #include <io.h> - #include <windows.h> - #include <winsock.h> - #include <windef.h> - #include "lame_enc.h" /* lame encoder stuff */ #endif
#define MY_MP3_MALLOC_IN_SIZE 65536 --- 61,70 ---- #include <time.h> #include <sys/time.h> #define SOCKET_ERROR -1 #endif
+ #include <lame/lame.h> /* lame encoder stuff */ + #include "mpg123.h" +
#define MY_MP3_MALLOC_IN_SIZE 65536 *************** *** 75,88 **** static char *mp3cast_version = "mp3cast~: mp3 streamer version 0.5, written by Yves Degoyon";
- #ifndef UNIX - static HINSTANCE dll = NULL; - static BEINITSTREAM initStream = NULL; - static BEENCODECHUNK encodeChunk = NULL; - static BEDEINITSTREAM deinitStream = NULL; - static BECLOSESTREAM closeStream = NULL; - static BEVERSION dllVersion = NULL; - static BEWRITEVBRHEADER writeVBRHeader = NULL; - #endif - static char base64table[65] = { 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P', --- 77,80 ---- *************** *** 132,138 **** t_float x_f; /* float needed for signal input */
- #ifdef UNIX lame_global_flags *lgfp; /* lame encoder configuration */ - #endif
} t_mp3cast; --- 124,128 ---- *************** *** 200,224 ****
/* encode mp3 data */ - #ifndef UNIX - err = encodeChunk(x->x_lame, x->x_lamechunk, x->x_mp3inbuf, x->x_mp3outbuf, &x->x_mp3size); - #else x->x_mp3size = lame_encode_buffer_interleaved(x->lgfp, x->x_mp3inbuf, x->x_lamechunk/lame_get_num_channels(x->lgfp), x->x_mp3outbuf, MY_MP3_MALLOC_OUT_SIZE); // post( "mp3cast~ : encoding returned %d frames", x->x_mp3size ); - #endif
/* check result */ - #ifndef UNIX - if(err != BE_ERR_SUCCESSFUL) - { - closeStream(x->x_lame); - error("mp3cast~: lameEncodeChunk() failed (%lu)", err); - #else if(x->x_mp3size<0) { lame_close( x->lgfp ); error("mp3cast~: lame_encode_buffer_interleaved failed (%d)", x->x_mp3size); - #endif x->x_lame = -1; } --- 190,203 ---- *************** *** 236,250 **** { error("mp3cast~: could not send encoded data to server (%d)", err); - #ifndef UNIX - closeStream(x->x_lame); - #else lame_close( x->lgfp ); - #endif x->x_lame = -1; ! #ifndef UNIX closesocket(x->x_fd); #else close(x->x_fd); ! #endif x->x_fd = -1; outlet_float(x->x_obj.ob_outlet, 0); --- 215,225 ---- { error("mp3cast~: could not send encoded data to server (%d)", err); lame_close( x->lgfp ); x->x_lame = -1; ! #ifdef _WIN32 closesocket(x->x_fd); #else close(x->x_fd); ! #endif /* _WIN32 */ x->x_fd = -1; outlet_float(x->x_obj.ob_outlet, 0); *************** *** 356,374 **** static void mp3cast_tilde_lame_init(t_mp3cast *x) { - #ifndef UNIX - /* encoder related stuff (calculating buffer size) */ - BE_VERSION lameVersion = {0,}; /* version number of LAME */ - BE_CONFIG lameConfig = {0,}; /* config structure of LAME */ - unsigned int ret; - #else int ret; x->lgfp = lame_init(); /* set default parameters for now */ - #endif
! #ifndef UNIX /* load lame_enc.dll library */ ! ! dll=LoadLibrary("lame_enc.dll"); ! if(dll==NULL) { error("mp3cast~: error loading lame_enc.dll"); --- 331,342 ---- static void mp3cast_tilde_lame_init(t_mp3cast *x) { int ret; x->lgfp = lame_init(); /* set default parameters for now */
! #ifdef _WIN32 /* load lame_enc.dll library */ ! HINSTANCE dll; ! dll=LoadLibrary("lame_enc.dll"); ! if(!dll) { error("mp3cast~: error loading lame_enc.dll"); *************** *** 379,451 **** return; } ! ! /* get Interface functions */ ! initStream = (BEINITSTREAM) GetProcAddress(dll, TEXT_BEINITSTREAM); ! encodeChunk = (BEENCODECHUNK) GetProcAddress(dll, TEXT_BEENCODECHUNK); ! deinitStream = (BEDEINITSTREAM) GetProcAddress(dll, TEXT_BEDEINITSTREAM); ! closeStream = (BECLOSESTREAM) GetProcAddress(dll, TEXT_BECLOSESTREAM); ! dllVersion = (BEVERSION) GetProcAddress(dll, TEXT_BEVERSION); ! writeVBRHeader = (BEWRITEVBRHEADER) GetProcAddress(dll,TEXT_BEWRITEVBRHEADER); ! ! /* check if all interfaces are present */ ! if(!initStream || !encodeChunk || !deinitStream || !closeStream || !dllVersion || !writeVBRHeader) ! { ! ! error("mp3cast~: unable to get LAME interfaces"); ! closesocket(x->x_fd); ! x->x_fd = -1; ! outlet_float(x->x_obj.ob_outlet, 0); ! post("mp3cast~: connection closed"); ! return; ! } ! ! /* get LAME version number */ ! dllVersion(&lameVersion); ! ! post( "mp3cast~: lame_enc.dll version %u.%02u (%u/%u/%u)\n" ! " lame_enc engine %u.%02u", ! lameVersion.byDLLMajorVersion, lameVersion.byDLLMinorVersion, ! lameVersion.byDay, lameVersion.byMonth, lameVersion.wYear, ! lameVersion.byMajorVersion, lameVersion.byMinorVersion); ! ! memset(&lameConfig,0,sizeof(lameConfig)); /* clear all fields */ ! #else { const char *lameVersion = get_lame_version(); post( "mp3cast~ : using lame version : %s", lameVersion ); } - #endif
- #ifndef UNIX - - /* use the LAME config structure */ - lameConfig.dwConfig = BE_CONFIG_LAME;
- /* set the mpeg format flags */ - lameConfig.format.LHV1.dwStructVersion = 1; - lameConfig.format.LHV1.dwStructSize = sizeof(lameConfig); - lameConfig.format.LHV1.dwSampleRate = (int)sys_getsr(); /* input frequency - pd's sample rate */ - lameConfig.format.LHV1.dwReSampleRate = x->x_samplerate; /* output s/r - resample if necessary */ - lameConfig.format.LHV1.nMode = x->x_mp3mode; /* output mode */ - lameConfig.format.LHV1.dwBitrate = x->x_bitrate; /* mp3 bitrate */ - lameConfig.format.LHV1.nPreset = x->x_mp3quality; /* mp3 encoding quality */ - lameConfig.format.LHV1.dwMpegVersion = MPEG1; /* use MPEG1 */ - lameConfig.format.LHV1.dwPsyModel = 0; /* USE DEFAULT PSYCHOACOUSTIC MODEL */ - lameConfig.format.LHV1.dwEmphasis = 0; /* NO EMPHASIS TURNED ON */ - lameConfig.format.LHV1.bOriginal = TRUE; /* SET ORIGINAL FLAG */ - lameConfig.format.LHV1.bCopyright = TRUE; /* SET COPYRIGHT FLAG */ - lameConfig.format.LHV1.bNoRes = TRUE; /* no bit resorvoir */ - - /* init the MP3 stream */ - ret = initStream(&lameConfig, &x->x_lamechunk, &x->x_mp3size, &x->x_lame); - - /* check result */ - if(ret != BE_ERR_SUCCESSFUL) - { - post("mp3cast~: error opening encoding stream (%lu)", ret); - return; - } - - #else /* setting lame parameters */ lame_set_num_channels( x->lgfp, 2); --- 347,357 ---- return; } ! #endif /* _WIN32 */ { const char *lameVersion = get_lame_version(); post( "mp3cast~ : using lame version : %s", lameVersion ); }
/* setting lame parameters */ lame_set_num_channels( x->lgfp, 2); *************** *** 471,477 **** } lame_init_bitstream( x->lgfp ); - #endif - - }
--- 377,380 ---- *************** *** 535,544 **** struct timeval tv; int sockfd; - - #ifndef UNIX - unsigned int ret; - #else int ret; - #endif
if(x->x_icecast == 0)portno++; /* use SHOUTcast, portno is one higher */ --- 438,442 ---- *************** *** 563,571 **** { post("mp3cast~: bad host?"); - #ifndef UNIX - closesocket(sockfd); - #else close(sockfd); - #endif return; } --- 461,465 ---- *************** *** 580,588 **** { error("mp3cast~: connection failed!\n"); ! #ifndef UNIX closesocket(sockfd); #else close(sockfd); ! #endif return; } --- 474,482 ---- { error("mp3cast~: connection failed!\n"); ! #ifdef _WIN32 closesocket(sockfd); #else close(sockfd); ! #endif /* _WIN32 */ return; } *************** *** 598,619 **** { error("mp3cast~: can not read from socket"); ! #ifndef UNIX closesocket(sockfd); #else close(sockfd); ! #endif return; } ret = select(sockfd + 1, NULL, &fdset, NULL, &tv); if(ret < 0) { error("mp3cast~: can not write to socket"); - #ifndef UNIX - closesocket(sockfd); - #else close(sockfd); - #endif return; }
if(x->x_icecast == 0) /* SHOUTCAST */ --- 492,511 ---- { error("mp3cast~: can not read from socket"); ! #ifdef _WIN32 closesocket(sockfd); #else close(sockfd); ! #endif /* _WIN32 */ return; } + #ifndef _WIN32 ret = select(sockfd + 1, NULL, &fdset, NULL, &tv); if(ret < 0) { error("mp3cast~: can not write to socket"); close(sockfd); return; } + #endif /* not _WIN32 */
if(x->x_icecast == 0) /* SHOUTCAST */ *************** *** 815,823 **** post("mp3cast~: login failed!"); if ( len>0 ) post("mp3cast~: server answered : %s", resp); ! #ifndef UNIX closesocket(sockfd); #else close(sockfd); ! #endif return; } --- 707,715 ---- post("mp3cast~: login failed!"); if ( len>0 ) post("mp3cast~: server answered : %s", resp); ! #ifdef _WIN32 closesocket(sockfd); #else close(sockfd); ! #endif /* _WIN32 */ return; } *************** *** 843,863 **** if(x->x_lame >= 0) { ! #ifndef UNIX ! /* deinit the stream */ ! err = deinitStream(x->x_lame, x->x_mp3outbuf, &x->x_mp3size); ! ! /* check result */ ! if(err != BE_ERR_SUCCESSFUL) ! { ! error("exiting mp3 stream failed (%lu)", err); ! } ! closeStream(x->x_lame); /* close mp3 encoder stream */ ! #else ! /* ignore remaining bytes */ if ( x->x_mp3size = lame_encode_flush( x->lgfp, x->x_mp3outbuf, 0) < 0 ) { post( "mp3cast~ : warning : remaining encoded bytes" ); } lame_close( x->lgfp ); ! #endif x->x_lame = -1; post("mp3cast~: encoder stream closed"); --- 735,744 ---- if(x->x_lame >= 0) { ! /* ignore remaining bytes */ if ( x->x_mp3size = lame_encode_flush( x->lgfp, x->x_mp3outbuf, 0) < 0 ) { post( "mp3cast~ : warning : remaining encoded bytes" ); } lame_close( x->lgfp ); ! x->x_lame = -1; post("mp3cast~: encoder stream closed"); *************** *** 866,874 **** if(x->x_fd >= 0) /* close socket */ { ! #ifndef UNIX closesocket(x->x_fd); #else close(x->x_fd); ! #endif x->x_fd = -1; outlet_float(x->x_obj.ob_outlet, 0); --- 747,755 ---- if(x->x_fd >= 0) /* close socket */ { ! #ifdef _WIN32 closesocket(x->x_fd); #else close(x->x_fd); ! #endif /* _WIN32 */ x->x_fd = -1; outlet_float(x->x_obj.ob_outlet, 0); *************** *** 926,934 **** post(" mode: %s\n" " quality: %d", buf, x->x_mp3quality); - #ifndef UNIX - if(x->x_lamechunk!=0)post(" calculated mp3 chunk size: %d", x->x_lamechunk); - #else post(" mp3 chunk size: %d", x->x_lamechunk); - #endif if(x->x_samplerate!=sys_getsr()) { --- 807,811 ---- *************** *** 1023,1037 **** { if(x->x_lame >= 0) - #ifndef UNIX - closeStream(x->x_lame); - #else lame_close( x->lgfp ); - #endif if(x->x_fd >= 0) ! #ifndef UNIX closesocket(x->x_fd); #else close(x->x_fd); ! #endif freebytes(x->x_mp3inbuf, MY_MP3_MALLOC_IN_SIZE*sizeof(short)); freebytes(x->x_mp3outbuf, MY_MP3_MALLOC_OUT_SIZE); --- 900,910 ---- { if(x->x_lame >= 0) lame_close( x->lgfp ); if(x->x_fd >= 0) ! #ifdef _WIN32 closesocket(x->x_fd); #else close(x->x_fd); ! #endif /* _WIN32 */ freebytes(x->x_mp3inbuf, MY_MP3_MALLOC_IN_SIZE*sizeof(short)); freebytes(x->x_mp3outbuf, MY_MP3_MALLOC_OUT_SIZE);