[PD-cvs] externals/unauthorized/mp3cast~ mp3cast~.c,1.6,1.7

Hans-Christoph Steiner eighthave at users.sourceforge.net
Wed Mar 29 18:39:44 CEST 2006


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);





More information about the Pd-cvs mailing list