While recording in the upper right side of the display the UI elements are fighting for visibility
See this:
https://i.imgur.com/0FZJHES.jpgWhile the red recording dot is almost always half cut, using any option in
Movie Tweaks ->
Time indicator will make a flickering value display there too.
In standby the top bar has:
* sound bars
* filename
* framerate
* free space on card
While recording:
* sound bars
* picture style gets inserted here and
* filename is shifted to the right
* framerate AND OVER IT whatever I choose in
Time indicator will be shown flickering (the screenshot was lucky)
* buffer indicator will be over histogram in all but 2 modes.
I've patched up
src/bitrate.c to move things around, and they look ok on my M at least, see pics:
* 3:2/4:3 top & bottom
* 16:10 HDMI
* 16:9 HDMI
* bottom 3:2/4:3
* bottom 16:9
Images:
https://imgur.com/a/WoVDNPatch:
--- bitrate.c 2015-04-14 02:55:02.000000000 +0300
+++ bitrate.c-new 2015-05-21 01:52:39.000000000 +0300
@@ -366,16 +366,17 @@
time_indicator == 2 ? time_cardfill :
time_indicator == 3 ? MIN(time_4gb, time_cardfill)
: 0;
-
- int time_indic_x = os.x_max - 160;
- int time_indic_y = get_ml_topbar_pos();
- if (time_indic_y > BMP_H_PLUS - 30) time_indic_y = BMP_H_PLUS - 30;
+
+ int screen_layout_menu_index = *get_screen_layout_ptr();
+ int time_indic_x = os.x_max;
+ int time_indic_y = get_ml_topbar_pos() + 32;
+ if (screen_layout_menu_index > 2) time_indic_y = time_indic_y - 55; // bottom modes need shifting up
if (time_indicator)
{
bmp_printf(
time_4gb < time_indic_warning ? time_indic_font : FONT(FONT_MED, COLOR_WHITE, TOPBAR_BGCOLOR),
- time_indic_x + 160 - 6 * font_med.width,
+ time_indic_x - 11 - 6 * font_med.width, // substracted 11 pixels to get it aligned with fps
time_indic_y,
"%3d:%02d",
dispvalue / 60,
@@ -407,7 +408,7 @@
);
#endif
}
-
+
//~ if (flicker_being_killed()) // this also kills recording dot
//~ {
//~ maru(os.x_max - 28, os.y0 + 12, COLOR_RED);
@@ -453,10 +454,13 @@
void show_mvr_buffer_status()
{
int fnt = warning ? FONT(FONT_SMALL, COLOR_WHITE, COLOR_RED) : FONT(FONT_SMALL, COLOR_WHITE, COLOR_GREEN2);
+ int buffer_indic_y = get_ml_topbar_pos() + 32;
+ if (buffer_indic_y > 400) buffer_indic_y = get_ml_topbar_pos() - 23; // bottom modes need shifting up
+
if (warning) warning--;
if (RECORDING_H264 && get_global_draw() && !gui_menu_shown())
{
- bmp_printf(fnt, 680, 55, " %3d%%", MVR_BUFFER_USAGE);
+ bmp_printf(fnt, os.x_max - 131, buffer_indic_y, "%3d%%", MVR_BUFFER_USAGE);
}
}
Some ideas and questions before trying out for a pull request:
* Is this an M only issue? If not/yes, is this needed?
* I've clean up this, it substracts 160 and then later adds up 160, why?
int time_indic_x = os.x_max - 160;
...
time_indic_x + 160 - 6 * font_med.width,
* In
void time_indicator_show() I can use:
int screen_layout_menu_index = *get_screen_layout_ptr();
...
if (screen_layout_menu_index > 2) time_indic_y = time_indic_y - 55;
to detect current mode where
screen_layout_menu_index has a value of 0/1/2/3/4 ( for top&bottom3:2 / 16:10HDMI / 16:9HDMI / bottom3:2 / bottom16:9 ) and adjust vertical offset as needed, but if I try the same in
void show_mvr_buffer_status() it always says 16:9HDMI (
screen_layout_menu_index value of 2 ), hence I used a different test to determine current mode. Any reason for this difference?
*
bottom 3:2 and
bottom 16:9 modes are exactly the same, why?
Thanks