|
|
@@ -648,6 +648,23 @@ static struct mpeg4_bit_rate_values calculate_mpeg4_bit_rates(MOVTrack *track) |
|
|
|
struct mpeg4_bit_rate_values bit_rates = { 0 }; |
|
|
|
|
|
|
|
bit_rates.avg_bit_rate = compute_avg_bitrate(track); |
|
|
|
if (!bit_rates.avg_bit_rate) { |
|
|
|
// if the average bit rate cannot be calculated at this point, such as |
|
|
|
// in the case of fragmented MP4, utilize the following values as |
|
|
|
// fall-back in priority order: |
|
|
|
// |
|
|
|
// 1. average bit rate property |
|
|
|
// 2. bit rate (usually average over the whole clip) |
|
|
|
// 3. maximum bit rate property |
|
|
|
|
|
|
|
if (props && props->avg_bitrate) { |
|
|
|
bit_rates.avg_bit_rate = props->avg_bitrate; |
|
|
|
} else if (track->par->bit_rate) { |
|
|
|
bit_rates.avg_bit_rate = track->par->bit_rate; |
|
|
|
} else if (props && props->max_bitrate) { |
|
|
|
bit_rates.avg_bit_rate = props->max_bitrate; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// (FIXME should be max rate in any 1 sec window) |
|
|
|
bit_rates.max_bit_rate = FFMAX(track->par->bit_rate, |
|
|
|