how do i force 8 Bit or 10 Bit
For 8-bit:
How do i edit the edid and change "SCDC Present"?
I used this. It's in CEA Extension 1 -> HDMI-Forum VSDB.
how do i force 8 Bit or 10 Bit
For 8-bit:
How do i edit the edid and change "SCDC Present"?
I used this. It's in CEA Extension 1 -> HDMI-Forum VSDB.
Try to force YCbCr 4:4:4 instead of RGB:
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 7816b2a..758f3dc 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2196,7 +2196,7 @@ intel_hdmi_output_format(struct intel_connector *connector,
if (connector->base.ycbcr_420_allowed && ycbcr_420_output)
return INTEL_OUTPUT_FORMAT_YCBCR420;
else
- return INTEL_OUTPUT_FORMAT_RGB;
+ return INTEL_OUTPUT_FORMAT_YCBCR444;
}
static int intel_hdmi_compute_output_format(struct intel_encoder *encoder,
@@ -2215,8 +2215,8 @@ static int intel_hdmi_compute_output_format(struct intel_encoder *encoder,
if (ycbcr_420_only && crtc_state->sink_format != INTEL_OUTPUT_FORMAT_YCBCR420) {
drm_dbg_kms(&i915->drm,
- "YCbCr 4:2:0 mode but YCbCr 4:2:0 output not possible. Falling back to RGB.\n");
- crtc_state->sink_format = INTEL_OUTPUT_FORMAT_RGB;
+ "YCbCr 4:2:0 mode but YCbCr 4:2:0 output not possible. Falling back to YCBCR444.\n");
+ crtc_state->sink_format = INTEL_OUTPUT_FORMAT_YCBCR444;
}
crtc_state->output_format = intel_hdmi_output_format(crtc_state);
@@ -2247,7 +2247,7 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE)
return -EINVAL;
- pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB;
+ pipe_config->output_format = INTEL_OUTPUT_FORMAT_YCBCR444;
if (pipe_config->has_hdmi_sink)
pipe_config->has_infoframe = true;
Display More
Other things to try: force 10-bit and 8-bit 2160p @ 23,976 Hz mode instead of default 12-bit (with libdrm proptest tool).
Also worth trying a custom EDID with "SCDC Present" bit set to "disabled".
IMO those dropouts are data errors related to Intel HDMI 2.0 implementation.
Settings - System - Power Saving - Shutdown Function - Suspend
This is supposed to be used with Shutdown function timer. It works as intended.
smp do you know how to build a version with pipewire?
Edit distributions/LibreELEC/options
PIPEWIRE_SUPPORT="yes"
KODI_PIPEWIRE_SUPPORT="yes"
ALSA_SUPPORT="no"
KODI_ALSA_SUPPORT="no"
PULSEAUDIO_SUPPORT="no"
KODI_PULSEAUDIO_SUPPORT="no"
Maybe it's worth trying to do a test build with pipewire to see if there's any improvement.
For those who only use the satellite tuner I modded the driver to disable the DVB-T/C tuner.
TBS 5520SE has 2 tuners attached to a single demod. DVB core apparently does not support 2 tuners on 1 demod so the driver used a hacky way to split the adapter in 2 virtual frontends. This cause all sorts of issues with tvheadend (e.g. "no free adapter available"). I modded the driver so si2157 DVB-T tuner is not attached and only 1 DVB-S frontend is created.
I've seen a similar issue on a Samsung TV. Usually, when a HDMI source device is powered down - the TV still detects that something is plugged in to the HDMI port. But some devices stop being detected when powered down, on the next boot TV "thinks" that a new device has been connected and some HDMI-related settings reset to defaults. As a workaround, you can try to connect the Pi to TV via a self-powered HDMI splitter/switch/extender.
but no issue when play recorder
I think this has something to do with how the realtime streams are handled by Kodi.
Could you try to play via pvr addon with this build? - LibreELEC-Generic.x86_64-12.0-devel-20231208072228-5b2d3ec.img.gz
Most of 4K60 HDR videos are encoded without MaxFALL/MaxCLL metadata. Also HLG DVB streams don't use HDR metadata by design. Current HDR implementation in Kodi checks for the presence of metadata and if there is none or if it is "incomplete" - HDR passthrough is disabled. IMO this behaviour is incorrect, so I PR'ed this fix.
What hardware? Intel driver defaults to RGB 12-bit for all modes up to 4K/30Hz. For 4K 50/60Hz it would output RGB 8-bit or YCbCr 4:2:0 8-bit, depending on display's EDID.
The one I tried is :
LibreELEC-Generic.x86_64-11.0.3.img
Also try a
LibreELEC-Generic.x86_64-10.0.4.img