• 大小: 1.38MB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2023-08-15
  • 语言: 其他
  • 标签: lame  源码  mp3  

资源简介

mp3出名的编码库lame,可将音频数据封装成mp3格式

资源截图

代码片段和文件信息

/**
 *
 * Lame ACM wrapper encode/decode MP3 based RIFF/AVI files in MS Windows
 *
 *  Copyright (c) 2002 Steve Lhomme 
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not write to the Free Software
 * Foundation Inc. 59 Temple Place Suite 330 Boston MA  02111-1307  USA
 *
 */
 
/*!
\author Steve Lhomme
\version \$Id: ACM.cppv 1.20 2007/05/17 22:25:40 robert Exp $
*/

#if !defined(STRICT)
#define STRICT
#endif // STRICT

#include 

#include 
#include 
#include 

#include 
#include 
#include 

#include 

#include 

#include “adebug.h“
#include “resource.h“
#include “ACMStream.h“

#ifdef ENABLE_DECODING
#include “DecodeStream.h“
#endif // ENABLE_DECODING

#include “ACM.h“

#ifndef IDC_HAND
#define IDC_HAND            MAKEINTRESOURCE(32649)
#endif // IDC_HAND

char ACM::VersionString[120];

const char ACM_VERSION[] = “0.9.2“;

#ifdef WIN32
//
//  32-bit versions
//
#if (WINVER >= 0x0400)
 #define VERSION_ACM_DRIVER  MAKE_ACM_VERSION(4  0 0)
#else
#define VERSION_ACM_DRIVER  MAKE_ACM_VERSION(3 51 0)
#endif
#define VERSION_MSACM MAKE_ACM_VERSION(3 50 0)

#else
//
//  16-bit versions
//
#define VERSION_ACM_DRIVER MAKE_ACM_VERSION(1 0 0)
#define VERSION_MSACM MAKE_ACM_VERSION(2 1 0)

#endif

#define PERSONAL_FORMAT WAVE_FORMAT_MPEGlayer3
#define SIZE_FORMAT_STRUCT sizeof(MPEGlayer3WAVEFORMAT)
//#define SIZE_FORMAT_STRUCT 0

//static const char channel_mode[][13] = {“mono““stereo““joint stereo““dual channel“};
static const char channel_mode[][13] = {“mono““stereo“};
static const unsigned int mpeg1_freq[] = {480004410032000};
static const unsigned int mpeg2_freq[] = {24000220501600012000110258000};
static const unsigned int mpeg1_bitrate[] = {320 256 224 192 160 128 112 96 80 64 56 48 40 32};
static const unsigned int mpeg2_bitrate[] = {160 144 128 112  96  80  64 56 48 40 32 24 16  8};

#define SIZE_CHANNEL_MODE (sizeof(channel_mode)  / (sizeof(char) * 13))
#define SIZE_FREQ_MPEG1 (sizeof(mpeg1_freq)    / sizeof(unsigned int))
#define SIZE_FREQ_MPEG2 (sizeof(mpeg2_freq)    / sizeof(unsigned int))
#define SIZE_BITRATE_MPEG1 (sizeof(mpeg1_bitrate) / sizeof(unsigned int))
#define SIZE_BITRATE_MPEG2 (sizeof(mpeg2_bitrate) / sizeof(unsigned int))

static const int FORMAT_TAG_MAX_NB = 2; // PCM and PERSONAL (mandator

评论

共有 条评论