Example #1
0
static int codec_encoder(const struct PluginCodec_Definition * codec, 
                                           void * context,
                                     const void * from, 
                                       unsigned * fromLen,
                                           void * to,         
                                       unsigned * toLen,
                                   unsigned int * flag)
{
  if (*fromLen < SAMPLES_PER_FRAME*2 || *toLen < BYTES_PER_FRAME)
    return 0;

#ifdef _WIN32_WCE
  {
    UWord8 buffer[BYTES_PER_FRAME+1];
    if (E_IF_g729ab_encode(context, (Word16 *)from, buffer, toLen, 0) != 0)
      return 0;
    memcpy(to, &buffer[1], BYTES_PER_FRAME);
  }
#else

  va_g729a_encoder((short *)from, (unsigned char *)to);

#endif

  *fromLen = SAMPLES_PER_FRAME*2;
  *toLen   = BYTES_PER_FRAME;

  return 1; 
}
Example #2
0
static int codec_encoder(const struct PluginCodec_Definition * codec, 
                                           void * context,
                                     const void * from, 
                                       unsigned * fromLen,
                                           void * to,         
                                       unsigned * toLen,
                                   unsigned int * flag)
{
  //if (!encoderInUse)
  //  return 0;

  if (*fromLen < SAMPLES_PER_FRAME*2 || *toLen < L_FRAME_COMPRESSED)
    return 0;

  va_g729a_encoder((short *)from, (unsigned char *)to);

  *fromLen = SAMPLES_PER_FRAME*2;
  *toLen   = L_FRAME_COMPRESSED;

  return 1; 
}
BOOL CAudioCode::EncodeAudioData(char *pin,int len,char* pout,int* lenr)
{
	BOOL bRet=FALSE;
	if(!pin||len!=SIZE_AUDIO_FRAME||!pout)
		goto RET;
	
	va_g729a_encoder((short*)pin,(BYTE*)pout);
	va_g729a_encoder((short*)(pin+160),(BYTE*)pout+10);
	va_g729a_encoder((short*)(pin+320),(BYTE*)pout+20);
	va_g729a_encoder((short*)(pin+480),(BYTE*)pout+30);
	va_g729a_encoder((short*)(pin+640),(BYTE*)pout+40);
	va_g729a_encoder((short*)(pin+800),(BYTE*)pout+50);
	va_g729a_encoder((short*)(pin+960),(BYTE*)pout+60);
	if(lenr)
		*lenr=SIZE_AUDIO_PACKED;

	bRet=TRUE;
RET:
	return bRet;
}
Example #4
0
HRESULT	CG729EncoderFilter::EncodeMedia(IMediaSample *pSource, IMediaSample *pDest) const
{
	// Copy the sample data
	
	BYTE *pSourceBuffer, *pDestBuffer;
	long lSourceSize = pSource->GetActualDataLength();
	
	pSource->GetPointer( &pSourceBuffer );
	pDest->GetPointer( &pDestBuffer );
	
	for ( BYTE *pSrc = pSourceBuffer, *pDst = pDestBuffer;
		pSrc - pSourceBuffer < lSourceSize; pSrc += L_FRAME * sizeof(WORD) )
	{
		va_g729a_encoder( (SHORT *)pSrc, pDst );
		pDst += L_FRAME_COMPRESSED * sizeof(BYTE);
	}
	
	// Copy the actual data length
	
	long nDestLength = long( pDst - pDestBuffer );
	pDest->SetActualDataLength( nDestLength );
	
	return S_OK;
}
Example #5
0
	//----------------------------------------------------------------------------------------------------
	bool EEWaveCoder::WaveEncode(char *_dataIn, int _inLen, char *_dataOut, int *_outLen)
	{
		InitializeWaveCoder();

		if (!_dataIn || _inLen != 960 || !_dataOut)
			return false;

		va_g729a_encoder((short*)_dataIn, (BYTE*)_dataOut);
		va_g729a_encoder((short*)(_dataIn + 160), (BYTE*)_dataOut + 10);
		va_g729a_encoder((short*)(_dataIn + 320), (BYTE*)_dataOut + 20);
		va_g729a_encoder((short*)(_dataIn + 480), (BYTE*)_dataOut + 30);
		va_g729a_encoder((short*)(_dataIn + 640), (BYTE*)_dataOut + 40);
		va_g729a_encoder((short*)(_dataIn + 800), (BYTE*)_dataOut + 50);

		if (_outLen)
			*_outLen = 60;

		return true;
	}
Example #6
0
void main()
{
	// char char_stream1[160]={60,0,64,0,62,0,62,0,58,0,55,0,43,0,29,0,24,0,20,0,11,0,9,0,11,0,12,0,7,0,10,0,11,0,6,0,4,0,1,0,5,0,10,0,8,0,2,0,1,0,3,0,9,0,9,0,3,0,3,0,8,0,12,0,16,0,18,0,21,0,18,0,17,0,17,0,12,0,13,0,14,0,21,0,29,0,26,0,14,0,8,0,0,0,-12,-1,-15,-1,-10,-1,-12,-1,-21,-1,-16,-1,-8,-1,-8,-1,-10,-1,-6,-1,-10,-1,-15,-1,-14,-1,-8,-1,-8,-1,-8,-1,-5,-1,-2,-1,-4,-1,-13,-1,-14,-1,-21,-1,-27,-1,-33,-1,-36,-1,-38,-1,-36,-1,-29,-1,-23,-1,-18,-1,-19,-1,-17,-1,-11,-1};

	int i;
	/*   void *pdlhandle;
	char *pszerror;
	printf("open libg729encoder.so.\n");
	pdlhandle = dlopen("./libg729encoder.so",RTLD_LAZY);
	pszerror = dlerror();
	if (0!= pszerror)
	{
	printf("%s\n",pszerror);
	exit(1);
	}


	void (*va_g729a_init_encoder)();
	void (*va_g729a_encoder)(short *,unsigned char *);

	va_g729a_init_encoder=dlsym(pdlhandle,"va_g729a_init_encoder");
	va_g729a_encoder=dlsym(pdlhandle,"va_g729a_encoder");
	pszerror = dlerror();
	if(0!=pszerror){
	printf("%s\n",pszerror);
	exit(1);
	}*/



	//	short speech[L_FRAME];
	short input1[80]={18770,17990,28964,2,16727,17750,28006,8308,16,0,1,1,8000,0,16000,0,2,16,24932,24948,28928,2,60,64,62,62,58,55,43,29,24,20,11,9,11,12,7,10,11,6,4,1,5,10,8,2,1,3,9,9,3,3,8,12,16,18,21,18,17,17,12,13,14,21,29,26,14,8,0,-12,-15,-10,-12,-21,-16,-8,-8,-10,-6,-10};
	short input2[80]={-15,-14,-8,-8,-8,-5,-2,-4,-13,-14,-21,-27,-33,-36,-38,-36,-29,-23,-18,-19,-17,-11,-6,-4,-2,0,-6,-9,-10,-15,-17,-17,-13,-12,-13,-3,0,-3,-6,-4,-4,-6,-5,-6,-5,-6,-12,-11,-9,-17,-21,-18,-18,-23,-28,-30,-29,-27,-22,-19,-20,-16,-14,-20,-26,-24,-20,-23,-22,-18,-18,-17,-17,-19,-21,-22,-15,-13,-10,-1};
	short input3[80]={6,2,-10,-17,-16,-15,-12,-8,-1,-1,-5,-2,0,-1,1,1,-11,-19,-23,-27,-29,-30,-33,-38,-41,-30,-19,-9,-11,-11,-11,-4,0,-11,-19,-26,-35,-36,-34,-33,-26,-19,-17,-19,-19,-21,-19,-16,-17,-16,-19,-16,-20,-26,-27,-30,-32,-35,-30,-29,-33,-37,-40,-38,-37,-37,-36,-40,-40,-33,-27,-23,-20,-21,-28,-34,-41,-50,-51,-54};
	//  speech=char_stream1;
	//   printf("len of speech is:%d\n",sizeof(speech));
	//   for(i=0;i<80;i++)
	//  printf("input  is :%d\n",input[i]);
	unsigned char serial[L_FRAME_COMPRESSED];

	va_g729a_init_encoder();
	for(i=0;i<10;i++)
		printf("before serial is:%d\n",serial[i]);

	va_g729a_encoder(input1,serial);
	for(i=0;i<10;i++)
		printf("serial_1 is:%d\n",serial[i]); 

	va_g729a_encoder(input2,serial);
	for(i=0;i<10;i++)
		printf("serial_2 is:%d\n",serial[i]);

	va_g729a_encoder(input3,serial);
	for(i=0;i<10;i++)
		printf("serial_3 is:%d\n",serial[i]);



	//       printf("close libg729encoder.so\n");
	//      dlclose(pdlhandle);

} /* end of main() */