Hi!
Attached patch from MIKEH / Elemental is apparently meant to implement
setting h264 bitrate. It makes no difference for the sample from ticket
#3392.
I have no idea how to attribute the patch.
Please comment, Carl Eugen
diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
index 2013670..2f48f72 100644
--- a/libavcodec/h264_ps.c
+++ b/libavcodec/h264_ps.c
@@ -130,6 +130,7 @@ static const uint8_t default_scaling8[2][64] = {
static inline int decode_hrd_parameters(H264Context *h, SPS *sps)
{
int cpb_count, i;
+ int bit_rate_scale, bit_rate_value = 0;
cpb_count = get_ue_golomb_31(&h->gb) + 1;
if (cpb_count > 32U) {
@@ -137,13 +138,15 @@ static inline int decode_hrd_parameters(H264Context *h, SPS *sps)
return AVERROR_INVALIDDATA;
}
- get_bits(&h->gb, 4); /* bit_rate_scale */
+ bit_rate_scale = get_bits(&h->gb, 4); /* bit_rate_scale */
get_bits(&h->gb, 4); /* cpb_size_scale */
for (i = 0; i < cpb_count; i++) {
- get_ue_golomb_long(&h->gb); /* bit_rate_value_minus1 */
+ bit_rate_value = get_ue_golomb_long(&h->gb); /* bit_rate_value_minus1 */
get_ue_golomb_long(&h->gb); /* cpb_size_value_minus1 */
get_bits1(&h->gb); /* cbr_flag */
}
+ if (bit_rate_value)
+ h->avctx->bit_rate = bit_rate_value + 1 << bit_rate_scale + 6;
sps->initial_cpb_removal_delay_length = get_bits(&h->gb, 5) + 1;
sps->cpb_removal_delay_length = get_bits(&h->gb, 5) + 1;
sps->dpb_output_delay_length = get_bits(&h->gb, 5) + 1;
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel