0

XC4055 HDMI Multi-Screen

We have a new XC4055 running on BA:Classic as we run a BSNEE server internally

I'd like to showcase the 4x HDMI Output running 4 different bits of content. While I can see this was supposed to be a feature in BA:Connected, how do I enable it in BA:Classic?

I can create a 4x Video Zone layout in BS:Classic, but I can't seem to find where I point the Zones to the HDMI Outputs?

Thanks

19 comments

  • 0
    Avatar
    Allen H. Porter

    BSNEE and BA upgrade.

  • 0
    Avatar
    Dominic Lennon

    I'm already running 4.5.6 and 5.0.0.4 so????

  • 0
    Avatar
    Brandon

    Multi-screen output on XC5 series is not supported in classic BrightAuthor at this time - in classic BrightAuthor, you have a single HDMI output.  You get the benefit of increased output resolutions, but only on the single HDMI 1 output.

    _________________________________________________________________________
    Friendly reminder, the community forum is intended for user-to-user discussion.  It is not regularly monitored. For troubleshooting problems and to ensure a timely answer from a BrightSign representative, please submit a support ticket

  • 3
    Avatar
    Dominic Lennon

    Hi Brandon

    Any ideas on when this will be introduced on BA:Classic?

  • 1
    Avatar
    Dominic Lennon

    Or can I use a plugin to tell the canvas to output:

    vm = CreateObject("roVideoMode")
    sm = vm.GetScreenModes()
     
    sm[0].name="HDMI-1"
    sm[0].video_mode="3140x2160x30p"
    sm[0].transform = "normal"
    sm[0].display_x=0
    sm[0].display_y=0
    sm[0].enabled = true
     
    sm[0].name="HDMI-2"
    sm[1].video_mode="3140x2160x30p"
    sm[1].transform = "normal"
    sm[1].display_x=0
    sm[1].display_y=2160
    sm[1].enabled = true

    sm[0].name="HDMI-3"
    sm[2].video_mode="3140x2160x30p"
    sm[2].transform = "normal"
    sm[2].display_x=3140
    sm[2].display_y=0
    sm[2].enabled = true

    sm[0].name="HDMI-4"
    sm[3].video_mode="3140x2160x30p"
    sm[3].transform = "normal"
    sm[3].display_x=3140
    sm[3].display_y=2160
    sm[3].enabled = true
     
    vm.SetScreenModes(sm)

     

    Or am I on the wrong path here?

  • -3
    Avatar
    Brandon

    I'm not aware of any plans to support multiscreen output on XC5 in classic BrightAuthor.
    Best to post in BrightSign Product and Feature Request Discussion forum.

    Multiscreen output is achievable in BrightScript, as that's how BA connected does it too.
    See VideoMode Multiscreen Configuration

  • 1
    Avatar
    Dominic Lennon

    Hi Brandon,

    Brilliant, I'll have a play around!

    Thanks

    Dom

  • 0
    Avatar
    Dominic Lennon

    Hi Brandon

    Sorry for the further questions, but I assume I put the Multiscreen Config into a custom autorun?

    Do you have any pointers as to where in the list I put it?

    Thanks

    Dom

  • 0
    Avatar
    Audrey Reenders-Arens

    Dominic Lennon - where did you find those vm = CreateObject("roVideoMode")
    sm = vm.GetScreenModes() commands for the main.brs? I'm not finding it documented anywhere. Thanks

  • 0
    Avatar
    acalleja

    roVideoMode - Documentation - BrightSign Documentation (atlassian.net)

    Audrey, on the link you have this example and the explanation: 

    vm = CreateObject("roVideoMode") sm = vm.GetScreenModes()

     

    sm[0].video_mode="1920x1080x60p"

    sm[0].transform = "normal"

    sm[0].display_x=0

    sm[0].display_y=0

    sm[0].enabled = true

     

    sm[1].video_mode="1920x1080x60p"

    sm[1].transform = "normal"

    sm[1].display_x=0

    sm[1].display_y=1080

    sm[1].enabled = true

     

    vm.SetScreenModes(sm)

  • 0
    Avatar
    Gerald Holdsworth

    I've just received an XC4055 and tried that script, in order to output four different videos on each HDMI.

    When the player gets to the line

    sm[1].video_mode="1920x1080x60p"

    if fails with an error. Basically, sm[1] (as well as sm[2], and sm[3]) does not exist.

    So, I had to comment out

    sm = vm.GetScreenModes()

    and replace it with

    sm=CreateObject("roArray",4,true)
    sm[0]=CreateObject("roAssociativeArray")
    sm[1]=CreateObject("roAssociativeArray")
    sm[2]=CreateObject("roAssociativeArray")
    sm[3]=CreateObject("roAssociativeArray")

    In addition, the line

    vm.SetScreenModes(sm)

    reboots the player. This is not mentioned anywhere (that I have seen).

  • 0
    Avatar
    Gerald Holdsworth

    This should work better:

    REM This is what we want
    sm=CreateObject("roArray",4,true)
    REM One for each output
    sm[0]=CreateObject("roAssociativeArray")
    sm[1]=CreateObject("roAssociativeArray")
    sm[2]=CreateObject("roAssociativeArray")
    sm[3]=CreateObject("roAssociativeArray")
    sm[0].name="HDMI-1"
    sm[0].video_mode = "1920x1080x50p"
    sm[0].transform = "normal"
    sm[0].display_x = 0
    sm[0].display_y = 0
    sm[0].enabled = true
    sm[1].name="HDMI-2"
    sm[1].video_mode = "1920x1080x50p"
    sm[1].transform = "normal"
    sm[1].display_x = 0
    sm[1].display_y = 1080
    sm[1].enabled = true
    sm[2].name="HDMI-3"
    sm[2].video_mode = "1920x1080x50p"
    sm[2].transform = "normal"
    sm[2].display_x = 1920
    sm[2].display_y = 0
    sm[2].enabled = true
    sm[3].name="HDMI-4"
    sm[3].video_mode = "1920x1080x50p"
    sm[3].transform = "normal"
    sm[3].display_x = 1920
    sm[3].display_y = 1080
    sm[3].enabled = true

    REM Get what it is actually set to
    mode=CreateObject("roVideoMode")
    screenmode=mode.GetScreenModes()

    changed=False
    counter=0
    while counter<sm.count()
    if screenmode.count()<counter+1 then screenmode.push(CreateObject("roAssociativeArray")) 'This will fail is the array is not expandable
    if screenmode[counter].name=invalid then
    screenmode[counter].name=""
    changed=True
    endif
    if screenmode[counter].name<>sm[counter].name then changed=True
    if screenmode[counter].video_mode=invalid then
    screenmode[counter].video_mode=""
    changed=True
    endif
    if screenmode[counter].video_mode<>sm[counter].video_mode then changed=True
    if screenmode[counter].transform=invalid then
    screenmode[counter].transform=""
    changed=True
    endif
    if screenmode[counter].transform<>sm[counter].transform then changed=True
    if screenmode[counter].display_x=invalid then
    screenmode[counter].display_x=0
    changed=True
    endif
    if screenmode[counter].display_x<>sm[counter].display_x then changed=True
    if screenmode[counter].display_y=invalid then
    screenmode[counter].display_y=0
    changed=True
    endif
    if screenmode[counter].display_y<>sm[counter].display_y then changed=True
    if screenmode[counter].enabled=invalid then
    screenmode[counter].enabled=false
    changed=True
    endif
    if screenmode[counter].enabled<>sm[counter].enabled then changed=True
    counter=counter+1
    endwhile
    REM Do we update it?
    if changed then mode.SetScreenModes(sm) 'This will cause a reboot.
  • 0
    Avatar
    Simonmitchell

    I'm trying to use BrightAuthor Connect and can't get anything out of my XC4055, it just hangs, I'm trying to set it up stand alone, and even the config at the very start makes you plug a network cable in to complete setup.

    Anyone got a working presentation that will take a single button input to trigger 4 files, one on each HDMI output?

    I've spent about 7 hours on this today and have nothing to show.....

  • 0
    Avatar
    Dominic Lennon

    @simonmitchell

    Let me send you something.  I'll get it over to you over the weekend

    Cheers

    Dom

  • 0
    Avatar
    Simonmitchell

    @Dominic Lennon

    You're star, I've been going crazy today, it just get stuck showing the brightsign logo.....

  • 0
    Avatar
    Dominic Lennon

    No worries.  

    Are you using GPIO for the button?

    You want 4 videos to fire off on each HDMI when the button is pressed?

    So the order would be:

    Attract loop on each output > Button Pressed > Simultaneous playback on each HDMI

    If you let me know that I'll get something put together

  • 0
    Avatar
    Simonmitchell

    Yup, just one GPIO button. Holding/attract on each and then all 4 play when button is pressed.
    That would be amazing.
    Thank you

  • 0
    Avatar
    Simonmitchell

    Each file will be same length and bit rate, so as long as the decoders playback at the same dates, they should all drop back to the attract at the same time. The 4 attracts and 4 triggered files will all be different contect though.

  • 0
    Avatar
    Dominic Lennon

    no worries, leave it with me

Please sign in to leave a comment.