fixed opus samplerate issue
This commit is contained in:
parent
aebe9b4254
commit
02ca1a2f59
|
@ -82,7 +82,7 @@ OpusLibEncoder :: init ( unsigned int outMaxBitrate )
|
|||
|
||||
if ( getOutSampleRate() != 48000 ) {
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
"unsupported sample rate for this encoder",
|
||||
"unsupported sample rate for this encoder, you should resample your input to 48000Hz",
|
||||
getOutSampleRate() );
|
||||
}
|
||||
|
||||
|
@ -180,7 +180,7 @@ OpusLibEncoder :: open ( void )
|
|||
switch ( getOutBitrateMode() ) {
|
||||
|
||||
case cbr: {
|
||||
int maxBitrate = getOutMaxBitrate() * 1000;
|
||||
int maxBitrate = getOutBitrate() * 1000;
|
||||
if ( !maxBitrate ) {
|
||||
maxBitrate = 96000;
|
||||
}
|
||||
|
@ -189,7 +189,17 @@ OpusLibEncoder :: open ( void )
|
|||
} break;
|
||||
|
||||
case abr: {
|
||||
int maxBitrate = getOutMaxBitrate() * 1000;
|
||||
int maxBitrate = getOutBitrate() * 1000;
|
||||
if ( !maxBitrate ) {
|
||||
maxBitrate = 96000;
|
||||
}
|
||||
/* set non-managed VBR around the average bitrate */
|
||||
opus_encoder_ctl(opusEncoder, OPUS_SET_BITRATE(maxBitrate));
|
||||
opus_encoder_ctl(opusEncoder, OPUS_SET_VBR(1));
|
||||
opus_encoder_ctl(opusEncoder, OPUS_SET_VBR_CONSTRAINT(1));
|
||||
} break;
|
||||
case vbr:
|
||||
int maxBitrate = getOutBitrate() * 1000;
|
||||
if ( !maxBitrate ) {
|
||||
maxBitrate = 96000;
|
||||
}
|
||||
|
@ -197,9 +207,7 @@ OpusLibEncoder :: open ( void )
|
|||
opus_encoder_ctl(opusEncoder, OPUS_SET_BITRATE(maxBitrate));
|
||||
opus_encoder_ctl(opusEncoder, OPUS_SET_VBR(1));
|
||||
opus_encoder_ctl(opusEncoder, OPUS_SET_VBR_CONSTRAINT(0));
|
||||
} break;
|
||||
case vbr:
|
||||
throw Exception( __FILE__, __LINE__, "vbr is not supported; use cbr/abr");
|
||||
break;
|
||||
}
|
||||
|
||||
if ( (ret = ogg_stream_init( &oggStreamState, 0)) ) {
|
||||
|
|
Loading…
Reference in New Issue