В сообщении от Friday 20 November 2020 19:42:52 Pierre autourduglobe via Cin написал(а):
Thank you for this discovery...
I had forgotten that discussion I had (5 years ago) with Igor Ubuntu about this subject...
I am currently re-reading the many texts quoted in this document.
I had forgotten all this complexity and the multiple distinctions between the IRE values that only concern analog video and the Waveform monitor (VideoScope) of Cinelerra-GG which only calculates % of the digital 0-255 scale.
It's not easy to understand that a YCbCr source image (16-235) corresponds to 6.3-92% on the Waveform grid, especially since there are no visual cues on the grid to indicate this and to show the video level overruns that could cause problems depending on the destination of the editing ...
I added (by trial and error!) those two lines ... they assume WAVEFORM_DIVISIONS 12 but I guess they only valid for some types of footage and some setting of mpeg/jpeg toggle .... diff --git a/cinelerra-5.1/cinelerra/scopewindow.C b/cinelerra-5.1/cinelerra/scopewindow.C index 6f34a155..e1cfe335 100644 --- a/cinelerra-5.1/cinelerra/scopewindow.C +++ b/cinelerra-5.1/cinelerra/scopewindow.C @@ -754,6 +754,32 @@ void ScopeGUI::draw_overlays(int overlays, int borders, int flush) waveform->draw_line(0, y, wave_w, y); waveform->draw_rectangle(0, 0, wave_w, wave_h); } + + int y1 = wave_h * 1.8 / WAVEFORM_DIVISIONS; + int text_y1 = y1 + wave_y + get_text_ascent(SMALLFONT) / 2; + CLAMP(text_y1, waveform->get_y() + get_text_ascent(SMALLFONT), waveform->get_y() + waveform->get_h() - 1); + char string1[BCTEXTLEN]; + sprintf( string1, "%d",(int)lround((FLOAT_MAX - + 1.8 * (FLOAT_MAX - FLOAT_MIN ) / WAVEFORM_DIVISIONS ) * 100) ); + int text_x1 = wave_x + get_text_width(SMALLFONT, string1) - margin +wave_w; + set_color(text_color); + draw_text(text_x1, text_y1, string1); + CLAMP(y1, 0, waveform->get_h() - 1); + set_color(dark_color); + waveform->draw_line(0, y1, wave_w, y1); + + int y2 = wave_h * 10.4 / WAVEFORM_DIVISIONS; + int text_y2 = y2 + wave_y + get_text_ascent(SMALLFONT) / 2; + CLAMP(text_y2, waveform->get_y() + get_text_ascent(SMALLFONT), waveform->get_y() + waveform->get_h() - 1); + char string2[BCTEXTLEN]; + sprintf( string2, "%d",(int)lround((FLOAT_MAX - + 10.4 * (FLOAT_MAX - FLOAT_MIN ) / WAVEFORM_DIVISIONS) * 100) ); + set_color(text_color); + draw_text(text_x1, text_y2, string2); + CLAMP(y2, 0, waveform->get_h() - 1); + set_color(dark_color); + waveform->draw_line(0, y2, wave_w, y2); + set_line_dashes(0); waveform->draw_point(); set_line_dashes(1);
Pierre
Le 20-11-19 à 21 h 06, Andrew Randrianasulu a écrit :
В сообщении от Friday 20 November 2020 04:31:08 Pierre autourduglobe via Cin написал(а):
And there was thread from 2015 on old Cin mail list discussing very same topic ....
https://lists.cinelerra-cv.org/pipermail/cinelerra/2015q4/003654.html