Forum Discussion

Victor_Dev's avatar
Victor_Dev
Channel Surfer
5 years ago
Solved

TCL Roku TV hdmi_status.IsHdcpActive("2.2") causes crash

Hello All,

I am new to roku development. I am implementing a playback in channel and using below canPlay4k method in my TCL Roku TV (model: 55S403).

I see crash. Appreciate any help as I am currently stuck with this issue

*     if devinfo.GetModelType = "STB" and hdmi_status.IsHdcpActive("2.2") <> true

'Dot' Operator attempted with invalid BrightScript Component or interface reference. (runtime error &hec)

Function CanPlay4K() as Boolean
    dev_info = CreateObject("roDeviceInfo")
    hdmi_status = CreateObject("roHdmiStatus")

    ' Check if the output mode is 2160p
    video_mode = dev_info.GetVideoMode()
    if (Left(video_mode, 5) <> "2160p")
      return false 'output mode is not set to 2160p
    end if

    print "Inside CanPlay4K  "
    if hdmi_status = invalid
        print "hdmi_status invalid "
    end if
  
    ' Check if HDCP 2.2 is enabled, skip check for TVs
    if devinfo.GetModelType = "STB" and hdmi_status.IsHdcpActive("2.2") <> true
        return false 'HDCP version is not 2.2
    end if

    ' Check if the Roku player can decode 4K 60fps HEVC streams or 4K 30fps vp9 streams
    hevc_video = { Codec: "hevc", Profile: "main", Level: "5.1" }
    vp9_video = { Codec: "vp9", Profile: "profile 0" }
    can_decode_hevc = dev_info.CanDecodeVideo(hevc_video)
    can_decode_vp9 = dev_info.CanDecodeVideo(vp9_video)
    if can_decode_hevc.result <> true OR can_decode_vp9.result <> true
      return false 'device cannot decode 4K HEVC AND VP9 streams
    end if

    ' (Optional) Check if the Roku player decrypts inside a TEE
    drm_info = dev_info.GetDrmInfo()
    if Instr(1, drm_info.playready, "tee") = 0
      return false 'device does not decrypt inside TEE
    end if

    return true
End Function