|
|
|
@ -386,7 +386,6 @@ static int encode_superframe(AVCodecContext *avctx, AVPacket *avpkt, |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if 1 |
|
|
|
|
total_gain = 128; |
|
|
|
|
for (i = 64; i; i >>= 1) { |
|
|
|
|
int error = encode_frame(s, s->coefs, avpkt->data, avpkt->size, |
|
|
|
@ -394,22 +393,6 @@ static int encode_superframe(AVCodecContext *avctx, AVPacket *avpkt, |
|
|
|
|
if (error < 0) |
|
|
|
|
total_gain -= i; |
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
total_gain = 90; |
|
|
|
|
best = encode_frame(s, s->coefs, avpkt->data, avpkt->size, total_gain); |
|
|
|
|
for (i = 32; i; i >>= 1) { |
|
|
|
|
int scoreL = encode_frame(s, s->coefs, avpkt->data, avpkt->size, total_gain - i); |
|
|
|
|
int scoreR = encode_frame(s, s->coefs, avpkt->data, avpkt->size, total_gain + i); |
|
|
|
|
av_log(NULL, AV_LOG_ERROR, "%d %d %d (%d)\n", scoreL, best, scoreR, total_gain); |
|
|
|
|
if (scoreL < FFMIN(best, scoreR)) { |
|
|
|
|
best = scoreL; |
|
|
|
|
total_gain -= i; |
|
|
|
|
} else if (scoreR < best) { |
|
|
|
|
best = scoreR; |
|
|
|
|
total_gain += i; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif /* 1 */ |
|
|
|
|
|
|
|
|
|
if ((i = encode_frame(s, s->coefs, avpkt->data, avpkt->size, total_gain)) >= 0) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "required frame size too large. please " |
|
|
|
|