X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=x264_encoder.cpp;h=955491e75656815be1d7f82d387d75d8cea1a4a9;hp=3a3151068dfad9333efa46bec795f754f2e15c30;hb=96cb6414f85e0ef4d660b7bd56267303e80fcd05;hpb=86950850f835fc611818d361d10a3ddbf6bb4f79 diff --git a/x264_encoder.cpp b/x264_encoder.cpp index 3a31510..955491e 100644 --- a/x264_encoder.cpp +++ b/x264_encoder.cpp @@ -65,6 +65,11 @@ X264Encoder::X264Encoder(AVOutputFormat *oformat) global_metrics.add("x264_output_frames", {{ "type", "i" }}, &metric_x264_output_frames_i); global_metrics.add("x264_output_frames", {{ "type", "p" }}, &metric_x264_output_frames_p); global_metrics.add("x264_output_frames", {{ "type", "b" }}, &metric_x264_output_frames_b); + + metric_x264_crf.init_uniform(50); + global_metrics.add("x264_crf", &metric_x264_crf); + + latency_histogram.init("x264"); } X264Encoder::~X264Encoder() @@ -363,6 +368,8 @@ void X264Encoder::encode_frame(X264Encoder::QueuedFrame qf) ++metric_x264_output_frames_p; } + metric_x264_crf.count_event(pic.prop.f_crf_avg); + if (frames_being_encoded.count(pic.i_pts)) { ReceivedTimestamps received_ts = frames_being_encoded[pic.i_pts]; frames_being_encoded.erase(pic.i_pts); @@ -370,7 +377,7 @@ void X264Encoder::encode_frame(X264Encoder::QueuedFrame qf) static int frameno = 0; print_latency("Current x264 latency (video inputs → network mux):", received_ts, (pic.i_type == X264_TYPE_B || pic.i_type == X264_TYPE_BREF), - &frameno); + &frameno, &latency_histogram); } else { assert(false); }