For the standardized 8 kHz sample rate, this works exactly the same. For nonstandard sample rates, the different predefined G726 names (G726-16, G726-24, G726-32, G726-40) are interpreted as an indication of the bits per coded sample, even though their actual bitrates aren't what the name specifies. This feels more sane than using free-form names for nonstandard sample rate/bitrate combinations, e.g like G726-22, G726-33 for 11025 Hz.
Unified · Split
| @@ -27,10 +27,8 @@ static int g726_ ## bitrate ##_init(AVFormatContext *s, int st_index, PayloadCon · 26 unmodified lines | ||
| 27 | 27 | AVStream *stream = s->streams[st_index]; \ |
| 28 | 28 | AVCodecContext *codec = stream->codec; \ |
| 29 | 29 | \ |
| 30 | − codec->bit_rate = bitrate*1000; \ | |
| 31 | − if (codec->sample_rate) \ | |
| 32 | − codec->bits_per_coded_sample = \ | |
| 33 | − av_clip((codec->bit_rate + codec->sample_rate/2) / codec->sample_rate, 2, 5); \ | |
| 30 | + codec->bits_per_coded_sample = bitrate/8; \ | |
| 31 | + codec->bit_rate = codec->bits_per_coded_sample * codec->sample_rate; \ | |
| 34 | 32 | \ |
| 35 | 33 | return 0; \ |
| 36 | 34 | } \ |