ref: 56d850412a2fc40bedb162de5e4b506bda2a5f4e
parent: 3499e78bd5a93edcef80f6cbd88e7fc1e1666d9b
author: Koen Vos <[email protected]>
date: Thu Aug 20 05:38:32 EDT 2015
Fixes bitrate statistics for decode-only operation and inband FEC Signed-off-by: Jean-Marc Valin <[email protected]>
--- a/src/opus_demo.c
+++ b/src/opus_demo.c
@@ -834,28 +834,32 @@
}
lost_prev = lost;
-
- /* count bits */
- bits += len[toggle]*8;
- bits_max = ( len[toggle]*8 > bits_max ) ? len[toggle]*8 : bits_max;
if( count >= use_inbandfec ) {
- nrg = 0.0;
+ /* count bits */
+ bits += len[toggle]*8;
+ bits_max = ( len[toggle]*8 > bits_max ) ? len[toggle]*8 : bits_max;
+ bits2 += len[toggle]*len[toggle]*64;
if (!decode_only)
{
+ nrg = 0.0;
for ( k = 0; k < frame_size * channels; k++ ) {
nrg += in[ k ] * (double)in[ k ];
}
+ nrg /= frame_size * channels;
+ if( nrg > 1e5 ) {
+ bits_act += len[toggle]*8;
+ count_act++;
+ }
}
- if ( ( nrg / ( frame_size * channels ) ) > 1e5 ) {
- bits_act += len[toggle]*8;
- count_act++;
- }
- /* Variance */
- bits2 += len[toggle]*len[toggle]*64;
}
count++;
toggle = (toggle + use_inbandfec) & 1;
}
+
+ /* Print out bitrate statistics */
+ if(decode_only)
+ frame_size = (int)(tot_samples / count);
+ count -= use_inbandfec;
fprintf (stderr, "average bitrate: %7.3f kb/s\n",
1e-3*bits*sampling_rate/tot_samples);
fprintf (stderr, "maximum bitrate: %7.3f kb/s\n",