mirror of
https://github.com/marqs85/ossc
synced 2025-10-25 21:16:03 +03:00
fix HDR infoframe repetition
This commit is contained in:
parent
ac0181a698
commit
e2f4350ab1
@ -3401,6 +3401,8 @@ SetGPInfoFrame(BYTE *pInfoFrameData)
|
|||||||
return ER_FAIL ;
|
return ER_FAIL ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DISABLE_NULL_PKT();
|
||||||
|
|
||||||
Switch_HDMITX_Bank(1) ;
|
Switch_HDMITX_Bank(1) ;
|
||||||
|
|
||||||
HDMITX_WriteI2C_Byte(REG_TX_PKT_HB00, (0x80+pInfoFrame->info.Type));
|
HDMITX_WriteI2C_Byte(REG_TX_PKT_HB00, (0x80+pInfoFrame->info.Type));
|
||||||
|
|||||||
@ -185,6 +185,7 @@ inline void TX_enable(tx_mode_t mode)
|
|||||||
SetAVMute(TRUE);
|
SetAVMute(TRUE);
|
||||||
DisableVideoOutput();
|
DisableVideoOutput();
|
||||||
EnableAVIInfoFrame(FALSE, NULL);
|
EnableAVIInfoFrame(FALSE, NULL);
|
||||||
|
EnableGPInfoFrame(FALSE, NULL);
|
||||||
|
|
||||||
//Setup TX configuration
|
//Setup TX configuration
|
||||||
//TODO: set pclk target and VIC dynamically
|
//TODO: set pclk target and VIC dynamically
|
||||||
@ -192,8 +193,10 @@ inline void TX_enable(tx_mode_t mode)
|
|||||||
|
|
||||||
if (mode != TX_DVI) {
|
if (mode != TX_DVI) {
|
||||||
HDMITX_SetAVIInfoFrame(vmode_out.vic, (mode == TX_HDMI_RGB) ? F_MODE_RGB444 : F_MODE_YUV444, 0, 0, tc.hdmi_itc, vm_conf.hdmitx_pixr_ifr);
|
HDMITX_SetAVIInfoFrame(vmode_out.vic, (mode == TX_HDMI_RGB) ? F_MODE_RGB444 : F_MODE_YUV444, 0, 0, tc.hdmi_itc, vm_conf.hdmitx_pixr_ifr);
|
||||||
HDMITX_SetHDRInfoFrame(tc.hdmi_hdr ? 3 : 0);
|
if (tc.hdmi_vrr)
|
||||||
HDMITX_SetVRRInfoFrame(tc.hdmi_vrr);
|
HDMITX_SetVRRInfoFrame(tc.hdmi_vrr);
|
||||||
|
if (tc.hdmi_hdr)
|
||||||
|
HDMITX_SetHDRInfoFrame(tc.hdmi_hdr ? 3 : 0);
|
||||||
cm.cc.hdmi_itc = tc.hdmi_itc;
|
cm.cc.hdmi_itc = tc.hdmi_itc;
|
||||||
cm.cc.hdmi_hdr = tc.hdmi_hdr;
|
cm.cc.hdmi_hdr = tc.hdmi_hdr;
|
||||||
cm.cc.hdmi_vrr = tc.hdmi_vrr;
|
cm.cc.hdmi_vrr = tc.hdmi_vrr;
|
||||||
@ -1162,16 +1165,16 @@ int main()
|
|||||||
HDMITX_SetAVIInfoFrame(vmode_out.vic, (tc.tx_mode == TX_HDMI_RGB) ? F_MODE_RGB444 : F_MODE_YUV444, 0, 0, tc.hdmi_itc, vm_conf.hdmitx_pixr_ifr);
|
HDMITX_SetAVIInfoFrame(vmode_out.vic, (tc.tx_mode == TX_HDMI_RGB) ? F_MODE_RGB444 : F_MODE_YUV444, 0, 0, tc.hdmi_itc, vm_conf.hdmitx_pixr_ifr);
|
||||||
cm.cc.hdmi_itc = tc.hdmi_itc;
|
cm.cc.hdmi_itc = tc.hdmi_itc;
|
||||||
}
|
}
|
||||||
if (tc.hdmi_hdr != cm.cc.hdmi_hdr) {
|
|
||||||
printf("setting HDR flag to %d\n", tc.hdmi_hdr);
|
|
||||||
HDMITX_SetHDRInfoFrame(tc.hdmi_hdr ? 3 : 0);
|
|
||||||
cm.cc.hdmi_hdr = tc.hdmi_hdr;
|
|
||||||
}
|
|
||||||
if (tc.hdmi_vrr != cm.cc.hdmi_vrr) {
|
if (tc.hdmi_vrr != cm.cc.hdmi_vrr) {
|
||||||
printf("setting VRR flag to %d\n", tc.hdmi_vrr);
|
printf("setting VRR flag to %d\n", tc.hdmi_vrr);
|
||||||
HDMITX_SetVRRInfoFrame(tc.hdmi_vrr);
|
HDMITX_SetVRRInfoFrame(tc.hdmi_vrr);
|
||||||
cm.cc.hdmi_vrr = tc.hdmi_vrr;
|
cm.cc.hdmi_vrr = tc.hdmi_vrr;
|
||||||
}
|
}
|
||||||
|
if (tc.hdmi_hdr != cm.cc.hdmi_hdr) {
|
||||||
|
printf("setting HDR flag to %d\n", tc.hdmi_hdr);
|
||||||
|
HDMITX_SetHDRInfoFrame(tc.hdmi_hdr ? 3 : 0);
|
||||||
|
cm.cc.hdmi_hdr = tc.hdmi_hdr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (tc.av3_alt_rgb != cm.cc.av3_alt_rgb) {
|
if (tc.av3_alt_rgb != cm.cc.av3_alt_rgb) {
|
||||||
printf("Changing AV3 RGB source\n");
|
printf("Changing AV3 RGB source\n");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user