Esempio n. 1
1
JNIEXPORT jint JNICALL Java_org_thoughtcrime_redphone_codec_SpeexCodec_decode (JNIEnv *env, jobject obj, jbyteArray encArr, jshortArray decArr, jint encLen ){
  cenv = env;
  if( !initialized ) {
    logv(env, "tried to decode without initializing" );
    return -1;
  }

  if (decArr == NULL) {
    logv(env, "Speex decode passed a null decode buffer" );
    return -1;
  }

  jint dec_buffer_len = env->GetArrayLength( decArr );
  int dec_buffer_idx = 0;

  jbyte *jb_enc_stream;
  char *enc_stream;
  SpeexBits *dbits = NULL; //if this is null, speex will do PLC for us
  if( !env->IsSameObject( encArr, NULL ) ) {
    jb_enc_stream = env->GetByteArrayElements( encArr, NULL );
    enc_stream = (char *)jb_enc_stream;
    speex_bits_read_from( &dec_bits, enc_stream, encLen );
    env->ReleaseByteArrayElements( encArr, jb_enc_stream, JNI_ABORT );
    dbits = &dec_bits;
  } else {
    //    logv( env, "null encArr" );
  }

  while( 0 == speex_decode_int( dec, dbits, dec_buffer+dec_buffer_idx ) ) {
    dec_buffer_idx += dec_frame_size;
    if( dec_buffer_idx + dec_frame_size >= dec_buffer_len ) {
      logv( env, "out of space in the decArr buffer, idx=%d", dec_buffer_idx );
      break;
    }

    if( dec_buffer_idx + dec_frame_size >= dec_frame_size * MAX_DEC_FRAMES ) {
      logv( env, "out of space in the dec_buffer buffer, idx=%d", dec_buffer_idx );
      break;
    }

    if( dbits == NULL ) {
      //      logv(env, "did PLC" );
      break;//only generate one frame for PLC...
    }
  }
    
  env->SetShortArrayRegion( decArr, 0, dec_buffer_idx, dec_buffer );
  return dec_buffer_idx;
}
Esempio n. 2
0
VideoDecoder* CreateVideoDecoder(void)
{
    VideoDecoderContext* p;
    
    logv("CreateVideoDecoder");
    
    p = (VideoDecoderContext*)malloc(sizeof(VideoDecoderContext));
    if(p == NULL)
    {
        loge("memory alloc fail.");
        AdpaterRelease(0);
        return NULL;
    }
    
    memset(p, 0, sizeof(VideoDecoderContext));
    
    //* the partialStreamDataInfo is for data submit status recording.
    p->partialStreamDataInfo.nStreamIndex = 0;
    p->partialStreamDataInfo.nPts         = -1;
    p->partialStreamDataInfo.nStreamIndex = 1;
    p->partialStreamDataInfo.nPts         = -1;

    logv("create a video decoder with handle=%p", p);
    
    return (VideoDecoder*)p;
}
Esempio n. 3
0
void rpl_debug::warn(const char *fmt, ...)
{
    va_list vargs;
    va_start(vargs,fmt);

    logv(LOG_WARNING, fmt, vargs);
}
Esempio n. 4
0
void rpl_debug::info(const char *fmt, ...)
{
    va_list vargs;
    va_start(vargs,fmt);

    logv(LOG_INFO, fmt, vargs);
}
Esempio n. 5
0
 void logv(const char *file, const char *function, const int line, logging_level logLevel, const char* title, const char* fmt, ...)
 {
     va_list ap;
     va_start(ap, fmt);
     logv(file, function, line, logLevel, title, fmt, ap);
     va_end(ap);
 }
Esempio n. 6
0
	void Logger::error(const char* fmt, ...){
		// print_stack();
		va_list vl;
		va_start(vl, fmt);
		logv(Logger::ERROR, fmt, vl);
		va_end(vl);
	}
Esempio n. 7
0
void rpl_debug::error(const char *fmt, ...)
{
    va_list vargs;
    va_start(vargs,fmt);

    logv(LOG_ERR, fmt, vargs);
}
Esempio n. 8
0
void Log::errorf(const std::string& tag, const char* fmt, ...)
{
  va_list args;
  va_start(args, fmt);
  logv(LogLevel::Error, tag, fmt, args);
  va_end(args);
}
Esempio n. 9
0
void loge(ELogLevel level, const char* fmt, ...)
{
    va_list argp;
    va_start(argp, fmt);
    logv(level, fmt, argp);
    va_end(argp);
}
Esempio n. 10
0
void ResetVideoDecoder(VideoDecoder* pDecoder)
{
    int                  i;
    VideoDecoderContext* p;
    
    logv("ResetVideoDecoder, pDecoder=%p", pDecoder);
    
    p = (VideoDecoderContext*)pDecoder;
    
    //* reset the video engine.
    if(p->pVideoEngine)
    {
        AdapterLockVideoEngine();
        VideoEngineReset(p->pVideoEngine);
        AdapterUnLockVideoEngine();
    }
        
    if(p->pFbm==NULL && p->pVideoEngine != NULL)
    {
    	AdapterLockVideoEngine();
    	p->pFbm = VideoEngineGetFbm(p->pVideoEngine, 0);
    	AdapterUnLockVideoEngine();
    }
    if(p->pFbm != NULL)
    	FbmFlush(p->pFbm);
    
    //* flush stream data.
    if(p->pSbm != NULL)
    	SbmReset(p->pSbm);
    //* clear the partialStreamDataInfo.
    memset(&p->partialStreamDataInfo, 0, sizeof(VideoStreamDataInfo));
    
    return;
}
Esempio n. 11
0
void Log::logf(LogLevel level, const std::string& tag, const char* fmt, ...)
{
  va_list args;
  va_start(args, fmt);
  logv(level, tag, fmt, args);
  va_end(args);
}
Esempio n. 12
0
void Log::warningf(const std::string& tag, const char* fmt, ...)
{
  va_list args;
  va_start(args, fmt);
  logv(LogLevel::Warning, tag, fmt, args);
  va_end(args);
}
Esempio n. 13
0
void DestroyVideoDecoder(VideoDecoder* pDecoder)
{
    VideoDecoderContext* p;
    
    logv("DestroyVideoDecoder, pDecoder=%p", pDecoder);
    
    p = (VideoDecoderContext*)pDecoder;
    

    //* Destroy the video engine first.
    if(p->pVideoEngine != NULL)
    {
        AdapterLockVideoEngine();
        VideoEngineDestroy(p->pVideoEngine);
        AdapterUnLockVideoEngine();
    }
        
    //* the memory space for codec specific data was allocated in InitializeVideoDecoder.
    if(p->videoStreamInfo.pCodecSpecificData != NULL)
        free(p->videoStreamInfo.pCodecSpecificData);
    
    //* Destroy the stream buffer manager.
    if(p->pSbm != NULL)
        SbmDestroy(p->pSbm);

    if(p->pSbm != NULL)
        SbmDestroy(p->pSbm);
    
    AdpaterRelease();
    
    free(p);
    return;
}
Esempio n. 14
0
/** Logs a formatted error message to a log file(also outputs to stderr).
 * \param[in] pszStr - format string for the given parameters
 */
void log_file::loges(const tchar_t* pszStr, ...)
{
	va_list va;
	va_start(va, pszStr);
	logv(level_error, true, pszStr, va);
	va_end(va);
}
Esempio n. 15
0
int GetVideoStreamInfo(VideoDecoder* pDecoder, VideoStreamInfo* pVideoInfo)
{
    VideoDecoderContext* p;
    
    logv("GetVideoStreamInfo, pDecoder=%p, pVideoInfo=%p", pDecoder, pVideoInfo);
    
    p = (VideoDecoderContext*)pDecoder;
    
    //* set the video stream information.
    pVideoInfo->eCodecFormat   = p->videoStreamInfo.eCodecFormat;
    pVideoInfo->nWidth         = p->videoStreamInfo.nWidth;
    pVideoInfo->nHeight        = p->videoStreamInfo.nHeight;
    pVideoInfo->nFrameRate     = p->videoStreamInfo.nFrameRate;
    pVideoInfo->nFrameDuration = p->videoStreamInfo.nFrameDuration;
    pVideoInfo->nAspectRatio   = p->videoStreamInfo.nAspectRatio;
    
    //* print video stream information.
    {
        logi("Video Stream Information:");
        logi("     codec          = %s",        strCodecFormat[pVideoInfo->eCodecFormat - VIDEO_CODEC_FORMAT_MIN]);
        logi("     width          = %d pixels", pVideoInfo->nWidth);
        logi("     height         = %d pixels", pVideoInfo->nHeight);
        logi("     frame rate     = %d",        pVideoInfo->nFrameRate);
        logi("     frame duration = %d us",     pVideoInfo->nFrameDuration);
        logi("     aspect ratio   = %d",        pVideoInfo->nAspectRatio);
    }
    
    return 0;
}
Esempio n. 16
0
JNIEXPORT jint JNICALL Java_org_thoughtcrime_redphone_codec_SpeexCodec_encode (JNIEnv *env, jobject obj, jshortArray decArr, jbyteArray encArr, jint rawLen ){
  if( !initialized ) {
    logv( env, "tried to encode without initializing" );
    return -1;
  }

  //  logv( env, "entered encode %d", rawLen );
  //  logv( env, "encoding %d samples", rawLen );
  jshort *raw_stream = env->GetShortArrayElements( decArr, NULL );
  speex_bits_reset( &enc_bits );

  //  logv( env, "bits reset" );
  //  speex_preprocess_run( prepState, (spx_int16_t *)raw_stream );
  speex_encode_int( enc, (spx_int16_t *)raw_stream, &enc_bits );

  //  logv( env, "encode complete" );

  env->ReleaseShortArrayElements( decArr, raw_stream, JNI_ABORT );

  //  logv( env, "writing up to %d bytes to buffer", enc_frame_size );

  int nbytes = speex_bits_write( &enc_bits, enc_buffer, enc_frame_size );

  //  logv( env, "wrote %d bytes to buffer", nbytes );

  env->SetByteArrayRegion( encArr, 0, nbytes, (jbyte*)enc_buffer );

  //  logv( env, "wrote back to java buffer" );

  return (jint)nbytes;
}
Esempio n. 17
0
	void Logger::fatal(const char* fmt, ...){
		print_stack();
		va_list vl;
		va_start(vl, fmt);
		logv(Logger::FATAL, fmt, vl);
		va_end(vl);
		abort();
	}
Esempio n. 18
0
int log_write(int level, const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    int ret = logv(level, fmt, ap);
    va_end(ap);
    return ret;
}
Esempio n. 19
0
void rpl_debug::debug(unsigned int level, const char *fmt, ...)
{
    va_list vargs;
    va_start(vargs,fmt);

    if(flag_set(level)) {
        logv(LOG_DEBUG, fmt, vargs);
    }
}
Esempio n. 20
0
void rpl_debug::log(const char *fmt, ...)
{
    va_list vargs;
    va_start(vargs,fmt);

    if(flag) {
        logv(LOG_INFO, fmt, vargs);
    }
}
Esempio n. 21
0
void log(LogLevel prio, const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);

    logv(prio, fmt, ap);

    va_end(ap);
}
Esempio n. 22
0
/** Logs a formatted error message to a log file(also outputs to stderr).
 *  As an addition the first string %err is replaced with a given error 
 *  followed by the error description (system-based).
 *  This function differ from logerr() with logging the output string
 *  also to the stderr.
 * \param[in] pszStr - format string for the given parameters
 * \param[in] iSysErr - system error to be shown
 */
void log_file::logerrs(const tchar_t* pszStr, int_t iSysErr, ...)
{
	tchar_t szNewFmt[2048];
	if (prepare_fmt(pszStr, iSysErr, szNewFmt))
	{
		va_list va;
		va_start(va, iSysErr);
		logv(level_error, true, szNewFmt, va);
		va_end(va);
	}
	else
	{
		va_list va;
		va_start(va, iSysErr);
		logv(level_error, true, pszStr, va);
		va_end(va);
	}
}
Esempio n. 23
0
void rpl_debug::verbose(const char *fmt, ...)
{
    va_list vargs;
    va_start(vargs,fmt);

    if(flag) {
        logv(LOG_DEBUG, fmt, vargs);
    }
}
Esempio n. 24
0
/** Logs a formatted warning message to a log file(also outputs to stdout).
 * \param[in] pszStr - format string for the given parameters
 */
void log_file::logws(const tchar_t* pszStr, ...)
{
	if (m_iLogLevel > level_warning)
		return;
	va_list va;
	va_start(va, pszStr);
	logv(level_warning, true, pszStr, va);
	va_end(va);
}
Esempio n. 25
0
/** Output a message to the log. */
void
_log(int severity, log_domain_mask_t domain, const char *format, ...)
{
  va_list ap;
  if (severity > _log_global_min_severity)
    return;
  va_start(ap,format);
  logv(severity, domain, NULL, format, ap);
  va_end(ap);
}
Esempio n. 26
0
/** Logs a formatted informational message to a log file.
* \param[in] pszStr - format string for the given parameters
*/
void log_file::logiv(const tchar_t* pszStr, ...)
{
	if (m_iLogLevel > level_info)
		return;

	va_list va;
	va_start(va, pszStr);
	logv(level_info, false, pszStr, va);
	va_end(va);
}
Esempio n. 27
0
/** Logs a formatted message to a log file.
 * \param[in] iType - type of the log message (LT_*)
 * \param[in] bStd - log also to stdout/stderr if true
 * \param[in] pszStr - format string for the following parameters
 */
void log_file::log(int_t iType, bool bStd, const tchar_t* pszStr, ...)
{
	if (iType < m_iLogLevel)
		return;
	
	va_list va;
	va_start(va, pszStr);
	logv(iType, bStd, pszStr, va);
	va_end(va);
}
Esempio n. 28
0
void hs_log(hs_log_level level, const char *fmt, ...)
{
    assert(fmt);

    va_list ap;

    va_start(ap, fmt);
    logv(level, fmt, ap);
    va_end(ap);
}
Esempio n. 29
0
void Log::log(Level level, const char* objectName, size_t objectNameSize, const char* message, ...) {
	va_list args;

	if(!wouldLog(level))
		return;

	va_start(args, message);
	logv(level, objectName, objectNameSize, message, args);
	va_end(args);
}
Esempio n. 30
0
JNIEXPORT void JNICALL Java_org_thoughtcrime_redphone_codec_SpeexCodec_closeSpeex (JNIEnv *env, jobject obj ){
  if( !initialized ) {
    logv( env, "tried to shut down speex before initialization" );
    return;
  }

  logv( env, "speex shutdown" );
  speex_bits_destroy( &enc_bits );
  speex_bits_destroy( &dec_bits );

  logv( env, "bits destroyed" );

  speex_encoder_destroy( enc );
  speex_decoder_destroy( dec );

  //  jitter_buffer_destroy( jitter );

  logv( env, "codecs destroyed" );
}