[PD-cvs] externals/unauthorized/mp3write~ mp3write~.c,1.3,1.4

carmen rocco ix9 at users.sourceforge.net
Sat May 22 16:04:20 CEST 2004


Update of /cvsroot/pure-data/externals/unauthorized/mp3write~
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28467/mp3write~

Modified Files:
	mp3write~.c 
Log Message:
making mp3*~ work on windows


Index: mp3write~.c
===================================================================
RCS file: /cvsroot/pure-data/externals/unauthorized/mp3write~/mp3write~.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** mp3write~.c	25 Sep 2003 20:58:54 -0000	1.3
--- mp3write~.c	22 May 2004 14:04:17 -0000	1.4
***************
*** 30,40 ****
  /* ---------------------------------------------------------------------------- */
  
- 
- 
- #ifdef NT
- #pragma warning( disable : 4244 )
- #pragma warning( disable : 4305 )
- #endif
- 
  #include <string.h>
  #include <stdio.h>
--- 30,33 ----
***************
*** 55,59 ****
  #include <time.h>
  #include <sys/time.h>
- #include <lame/lame.h>        /* lame encoder stuff */
  #define SOCKET_ERROR -1
  #else
--- 48,51 ----
***************
*** 62,68 ****
  #include <winsock.h>
  #include <windef.h>
- #include "lame_enc.h"        /* lame encoder stuff */
  #endif
! 
  #include "m_pd.h"            /* standard pd stuff */
  
--- 54,59 ----
  #include <winsock.h>
  #include <windef.h>
  #endif
! #include <lame/lame.h>        /* lame encoder stuff */
  #include "m_pd.h"            /* standard pd stuff */
  
***************
*** 77,91 ****
  static int    sockfd;
  
- #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 t_class *mp3write_class;
  
--- 68,71 ----
***************
*** 123,129 ****
      char *x_title;            /* title of the mp3              */
  
- #ifdef UNIX
      lame_global_flags *lgfp;  /* lame encoder configuration */
- #endif
  } t_mp3write;
  
--- 103,107 ----
***************
*** 190,214 ****
  
          /* 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( "mp3write~ : encoding returned %d frames", x->x_mp3size );
- #endif
  
          /* check result */
- #ifndef UNIX
-     if(err != BE_ERR_SUCCESSFUL)
-     {
-         closeStream(x->x_lame);
-         error("mp3write~: lameEncodeChunk() failed (%lu)", err);
- #else
      if(x->x_mp3size<0)
      {
          lame_close( x->lgfp );
          error("mp3write~: lame_encode_buffer_interleaved failed (%d)", x->x_mp3size);
- #endif
          x->x_lame = -1;
      }
--- 168,182 ----
  
          /* encode mp3 data */
! 
      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( "mp3write~ : encoding returned %d frames", x->x_mp3size );
  
          /* check result */
      if(x->x_mp3size<0)
      {
          lame_close( x->lgfp );
          error("mp3write~: lame_encode_buffer_interleaved failed (%d)", x->x_mp3size);
          x->x_lame = -1;
      }
***************
*** 234,242 ****
      {
          error("mp3write~: could not write encoded data to file (%d)", err);
- #ifndef UNIX
-         closeStream(x->x_lame);
- #else
          lame_close( x->lgfp );
- #endif
          x->x_lame = -1;
  #ifndef UNIX
--- 202,206 ----
***************
*** 362,378 ****
    time_t now;
  
- #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)
--- 326,335 ----
    time_t now;
  
      int    ret;
      x->lgfp = lame_init(); /* set default parameters for now */
  
  #ifndef UNIX
      /* load lame_enc.dll library */
!     HINSTANCE dll;
      dll=LoadLibrary("lame_enc.dll");
      if(dll==NULL)
***************
*** 384,455 ****
          return -1;
      }
! 
!         /* 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("mp3write~: unable to get LAME interfaces");
!         closesocket(x->x_fd);
!         x->x_fd = -1;
!         post("mp3write~: connection closed");
!         return -1;
!     }
! 
!         /* get LAME version number */
!     dllVersion(&lameVersion);
! 
!     post(   "mp3write~: 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( "mp3write~ : 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("mp3write~: error opening encoding stream (%lu)", ret);
-         return -1;
-     }
- 
- #else
          /* setting lame parameters */
      lame_set_num_channels( x->lgfp, 2);
--- 341,350 ----
          return -1;
      }
! #endif
      {
         const char *lameVersion = get_lame_version();
         post( "mp3write~ : using lame version : %s", lameVersion );
      }
  
          /* setting lame parameters */
      lame_set_num_channels( x->lgfp, 2);
***************
*** 486,490 ****
      id3tag_set_title(x->lgfp, x->x_title );
      
- #endif
      return 0;
  
--- 381,384 ----
***************
*** 639,647 ****
  
      /* flushing remaining frames and tag */
- #ifndef UNIX
-     deinitStream(x->x_lame, x->x_mp3outbuf, &x->x_mp3size);
- #else
      x->x_mp3size = lame_encode_flush( x->lgfp, x->x_mp3outbuf, MY_MP3_MALLOC_OUT_SIZE ); 
- #endif
      
      mp3write_writeframes(x);   /* write mp3 to file */
--- 533,537 ----
***************
*** 655,663 ****
  {
      if(x->x_lame >= 0)
- #ifndef UNIX
-         closeStream(x->x_lame);
- #else
          lame_close( x->lgfp );
- #endif
      if(x->x_fd >= 0)
  #ifndef UNIX
--- 545,549 ----





More information about the Pd-cvs mailing list