.net Library - StarDust.CasparCG.net

Am I allowed to share my project here in the forum?
I think it would make sense…

Ingo

Dear Ingo, I think you can not upload zip files to the forum, but you can share a Dropbox or WeTransfer link.

I also would guess that there is a firewall preventing that port from connection. There can be other firewalls outside of Windows on the router / switch etc. Are you at home or at work? Any IT department that owns that little network?

Hi didikunz,

I am pretty sure there is no firewall active nor any virus scanner.
I am at home and the network is actually just a switch.
Firewalls and virus scanner are deactivated on both the client and the server.

I might make some mistake in my application.
I uploaded my project in a lean version to WeTransfer.
Anyone who likes to help is welcome.:blush:

Ingo

Hi again,

I think I found another issue:
ActiveClip as member of Channelinfo doesn’t return anything even if clips are onair.

       For i = 0 To 7
            Console.WriteLine(CasparDevice.Channels(i).ActiveClip)
        Next i

The idea is to “recover” the GUI when the application was disconnected or restarted. So I’d like to know what the server is doing or which clips are active.
I thought ActiveClip-function might be useful in this context.

Ingo

In version 2.3 Channel info doesn’t return thé active clip. It’s not a bug of the lib.

OK. I see.
Thanks.

Ingo

Sorry but the transfer was deleted. Can you re upload your project please ?

Instead of use AMCP you can get the information with OSC message.

Instead of use AMCP you can get the information with OSC message

Yes. Thanks.
I know that. I only thought it would be helpful to use “ActiveClip” in this context.
But I understand that it is not possible and use OSC.

Ingo

Hi Romain,

Thanks again for your reply.
You’ll find the newly uploaded file here:

Meanwhile I figured out that I understood the OSC communication wrong. I thought my application is the client that listens to the server which has the same IP address as the CasparServer. So I used the same IP for CasparServer and OSC. But this is obviously wrong.
I now realised that my application is in fact the OSC server. So I had to listen to any other IP or my own. When I put “0.0.0.0” as IP address I am able to establish the OSC communication properly.

However the connection to the server via network with StarDust library still causes problems as you might see in the test app above.
Sometimes I can establish the connection and get a valid version information back from the server. Sometimes I can’t.
The connection always fails when I disconnect and try to reconnect.

Thanks for your support!

Ingo

g[quote=“Ingo, post:91, topic:1426”]
The connection always fails when I disconnect and try to reconnect.
[/quote]

That is a problem of the underlaying Socket object. You need to create a new Socket to connect, the reconnection of the old one will always fail.

Hi didi,

Thanks.
But what is the purpose of Connect- and Disconnect-command if I always need a new socket.
I don’t get that … :thinking:

Ingo

In an ideal world Windows and DotNET have no bugs and just work as expectef…

OK. I see. :grinning:

Ingo

I just fix the bug. You’re right the disconnect connect on OSC doesn’t work properly.
You can update the OSC nuget package.
Thanks for your report Ingo.

Hi Romain,

works fine with the new package!
Thanks very much! Great work!

Ingo

Hi Romain,

I am awfully sorry but it seems I found another issue :neutral_face:
As far as I can see it is not possible to loop a clip. The “playitem.loop”-parameter seems to be ignored.
Sorry to cause so much trouble.

Ingo


  Private Sub btn_play_Click(sender As Object, e As EventArgs)
        Dim ele = DirectCast(sender, Button)                                                            'definiert Sender als Button
        Dim btn_pressed As Integer = ele.Parent.Tag                                                     'liest den Kanal aus Tag
        Dim playitem As New CasparPlayingInfoItem()
        playitem.Clipname = CasparChannel(btn_pressed).cbx_media.Text
        playitem.VideoLayer = videolayer
        playitem.Transition = New Transition
        playitem.Loop = True
        CasparDevice.Channels(btn_pressed).Load(playitem)
        If CasparChannel(btn_pressed).cbx_media.SelectedIndex >= 0 Then                                 'wenn irgendwas ausgewählt ist
            CasparDevice.Channels(btn_pressed).Play(videolayer)                                         'Spielt den Clip
        End If
    End Sub

Hi Ingo,

The load command doesn’t accept loop parameter. The lib doing only that the AMCP Protocol accept.

You can use LoadBg instead. This command accept the loop parameter.

That is a missunderstanding. The LOAD command accepts the same options as the LOADBG command, they are only not listed twice in the wiki.

1 Like

Thanks Didi. So I will implement the options. Donyou know the difference between load and
LoadBg ?