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 ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel