⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsmcompress.cpp

📁 截取wave通过g.729在网上压缩传输
💻 CPP
字号:
#include "Stdafx.h"
#include "GsmCompress.h"

#pragma comment(lib,"gsm.lib")

CGsmCompress::CGsmCompress()
{
	m_hGsm = NULL;
	m_hGsm = gsm_create();
}

CGsmCompress::~CGsmCompress()
{
	if( m_hGsm != NULL )
	{
		gsm_destroy( m_hGsm );
		m_hGsm = NULL;
	}
}

void CGsmCompress::SetOption(long,long*)
{
	if( m_hGsm == NULL )
		return;

//	gsm_option(m_hGsm, long, long *));
}

BOOL CGsmCompress::Compress(char* src,int srclen,char* dst,int* dstlen)
{
	if( m_hGsm == NULL )
		return FALSE;

    gsm_frame dst_gsm;
    int i , l = 0;
    
    for (i = 0 ; i < srclen; i += 160) 
	{
        gsm_encode( m_hGsm , (short*)(src + i), dst_gsm);
        memcpy(dst + l, dst_gsm, sizeof(dst_gsm));
        l += sizeof(dst_gsm);
    }
	*dstlen = l;
	return TRUE;
}

BOOL CGsmCompress::UnCompress(char* src,int srclen,char* dst,int* dstlen)
{
	if( m_hGsm == NULL )
		return FALSE;

    gsm_signal dst_gsm[160];
    int i , l = 0;

    for (i = 0; i < srclen; i += sizeof(gsm_frame) ) 
	{
        gsm_decode(m_hGsm , (gsm_byte*)src + i, dst_gsm);
	    memcpy(dst + l, dst_gsm, sizeof(dst_gsm));
		l += 160;
    }
    *dstlen = l;

	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -