/** \fn setAudioCodec */ bool ADM_Composer::setAudioCodec(int dex,const char *codec, CONFcouple *c) { if(!audioCodecSetByName(dex,codec)) { ADM_warning("Cannot set codec %s, track %d\n",codec,dex); return false; } if(!setAudioExtraConf(dex,c)) { ADM_warning("Cannot set configuration for codec %s, track %d\n",codec,dex); return false; } //#warning memleak on *c ? return true; }
JSBool ADM_JSAvidemuxAudio::Codec(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {// begin Codec ADM_JSAvidemuxAudio *p = (ADM_JSAvidemuxAudio *)JS_GetPrivate(cx, obj); // default return value *rval = BOOLEAN_TO_JSVAL(false); if(argc != 4) return JS_FALSE; if(JSVAL_IS_STRING(argv[0]) == false || JSVAL_IS_INT(argv[1]) == false || JSVAL_IS_INT(argv[2]) == false || JSVAL_IS_STRING(argv[3]) == false ) return JS_FALSE; char *name = JS_GetStringBytes(JSVAL_TO_STRING(argv[0])); LowerCase(name); enterLock(); // First search the codec by its name if(!audioCodecSetByName(name)) *rval = BOOLEAN_TO_JSVAL(false); else {// begin set bitrate //audioFilter_SetBitrate(JSVAL_TO_INT(argv[1])); uint32_t bitrate,size; char *extra; uint8_t *data=NULL; bitrate=JSVAL_TO_INT(argv[1]); size=JSVAL_TO_INT(argv[2]); extra=JS_GetStringBytes(JSVAL_TO_STRING(argv[3])); if(size) { data=new uint8_t[size]; for (uint32_t k = 0; k < size; k++) { data[k] = mk_hex (*extra, *(extra + 1)); extra += 3; } setAudioExtraConf(bitrate,size,data); delete [] data; }else{ audioFilter_SetBitrate(JSVAL_TO_INT(argv[1])); } *rval = BOOLEAN_TO_JSVAL(true); }// end set bitrate leaveLock() return JS_TRUE; }// end Codec
/** * * @param p */ void call_audiocodec(char *p) { audioCodecSetByName( 0,p); }