logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
Lightning  
#1 Posted : Wednesday, August 7, 2019 11:54:23 PM(UTC)
Lightning

Rank: Newbie

Groups: Registered
Joined: 8/7/2019(UTC)
Posts: 5
Czech Republic

I use GT Titles and following code to update text values:

Public Class Form1
Private vMIX As Net.WebClient
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim postValues As New System.Collections.Specialized.NameValueCollection
Dim adr As String
Dim command As String
Dim res As Byte()
postValues.Add("Function", "ScriptStartDynamic")
adr = "http://127.0.0.1:8088/API/"
command = "Function=SetText&Input=HP_jeden_team&SelectedName=t_soutez.Text&Value=" & TextBox1.Text & vbCrLf & "Function=OverlayInput4In&Input=HP_jeden_team" & vbCrLf
postValues.Add("Value", command)

res = vMIX.UploadValues(adr, "POST", postValues)

End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
vMIX = New Net.WebClient()
End Sub
End Class


My problem is that title is shown before the value is updated. It means that you can see in the video title with old text for a couple of frames and then the text is changed.
I've tried to separate this command into two. First one to update all the values, then timeout (waiting) and the second command to show Overlay.
This sometimes works when the delay is 100ms but sometimes even 100ms is too short. But even 100ms is not an option for me.

Do you have an idea how to resolve this issue?

BTW> Which is the frequency in which I can send TCP API commands to vMIX? I would like to have two threads:
1. Update stopwatch
2. Update titles
How could I avoid vMIX overloading and be sure that command is correctly delivered?

Thank you very much for your support

Lightning  
#2 Posted : Thursday, August 22, 2019 1:26:52 AM(UTC)
Lightning

Rank: Newbie

Groups: Registered
Joined: 8/7/2019(UTC)
Posts: 5
Czech Republic

It looks that solution is this one (received from vMIX support team for another issue):

The issue appears to be due Optimus graphics. Please check the following to make sure
vMix is set to only use the Quadro graphics card as at the moment the Intel is being used as well which can cause graphics caching issues:
https://www.vmix.com/kno...n-nvidia-optimus-laptops

doggy  
#3 Posted : Thursday, August 22, 2019 1:47:26 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,057
Belgium
Location: Belgium

Thanks: 283 times
Was thanked: 916 time(s) in 755 post(s)
Quote:
BTW> Which is the frequency in which I can send TCP API commands to vMIX? I would like to have two threads:
1. Update stopwatch
2. Update titles


we update stopwatch and other all the time , key is to make sure your request can find the location with no delay and have a timeout/error trap as short as possible . for stopwatch update avoid showing hundreds and thousands of a sec , only show final full time at end. Things can slow down tremendously if it can not find the proper location even as silly as the proper textfield in your title
Lightning  
#4 Posted : Thursday, August 22, 2019 3:15:29 AM(UTC)
Lightning

Rank: Newbie

Groups: Registered
Joined: 8/7/2019(UTC)
Posts: 5
Czech Republic

I've changed the concept completely. Now I use TCP API only to change title in the overlay. To get actual values of stopwatch etc. I use datasource of vMIX - JSON to http server in localhost.
doggy  
#5 Posted : Thursday, August 22, 2019 3:21:11 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,057
Belgium
Location: Belgium

Thanks: 283 times
Was thanked: 916 time(s) in 755 post(s)
out of curiosity, is it a actual fast running stopwatch displayed or the result at some point of a stopwatch or more like a clock ? how fast do you update through your datasource ?
Lightning  
#6 Posted : Thursday, August 22, 2019 3:46:14 AM(UTC)
Lightning

Rank: Newbie

Groups: Registered
Joined: 8/7/2019(UTC)
Posts: 5
Czech Republic

Stopwatch has a precision of hundredths. I show in vMIX precision of tenth. Update frequency of datasource is 100ms. Unfortunately it's not 100ms in reality. It's more or less 120ms. So I always miss some values in the video.
E.g. real time of stopwatch 10.39 - sent to vmix 10.3. After next update stopwatch value 10.51 - sent to vMIX 10.5. And 10.4 does not appear.

How do you send the data to vMIX? Using multi-line approach that I've used in my very first post or for each command one separate HTTP GET/POST request?
doggy  
#7 Posted : Thursday, August 22, 2019 8:03:25 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,057
Belgium
Location: Belgium

Thanks: 283 times
Was thanked: 916 time(s) in 755 post(s)
depends on how you are getting the stopwatch data in , we get it through reading a serial port using an external vb.net app that sends httprequests ( we do format the time to only contain tenths but only full (thousands) when finished. the less inbetween steps involved the faster the display can get
In fact considering the have the app send the time as a NDI overlay but than i wont be able to read from the textblocks for further processing and would have to sync with the current lower third contianing the other data ;-)
Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.