Quick Sign In:  

Forum: VirtualDJ Plugins

Topic: Spout for Virtual DJ - Page: 6

This part of topic is old and might contain outdated or incorrect information

NicotuxHome userMember since 2014
It appears receiving RGBA is not working the same as BGRA
 

Posted Fri 08 Jan 21 @ 1:59 am
Don - I will see if I can reproduce this and track it down. I have just updated GitHub source and a binary to try - version 2.05. So try that to see whether the problem remains.

https://github.com/leadedge/SpoutVDJ/raw/beta/Source/x64/Binaries/VDJSpoutReceiver64.dll

Nicotux - your new GitHub repo is very useful.

I notice differences in the name generation code to that in the sender. Should the sender plugin be updated?

I have included the new code in the receiver. As I understand it, this will prevent receiving from a sender plugin if it is loaded on the same deck or on the master deck, but will allow receiving from sender plugins on other decks.

I can't find "DeclareParameterPosition" in the latest VDJ header files, so I assume this is a modification that you have made. It's no trouble to add. But if there is ever a problem with the plugin, I don't know enough about it to help.

Probably the best solution is for you to create an independent plugin specifically to do what you want and then you are in control. Maybe use a different plugin class name and dll name so there is no confusion.

What are you receiving from to see the difference between RGBA / BGRA?

Scott - yes NestDrop is fantastic and I hope it works out for people who want to use it.
 

Posted Fri 08 Jan 21 @ 2:53 am
I found that after click on the main deck window to turn it off, OnDeviceClose is called, so everything is released. OnDeviceInit is not called again if the window is toggled on again. But Onstart is, so I have worked around it and set up again if OnDeviceClose was called. I think we had this problem some time back and simply did nothing in OnDeviceClose but that solution doesn't work any more.

https://github.com/leadedge/SpoutVDJ/raw/beta/Source/x64/Binaries/VDJSpoutReceiver64.dll

The RGBA/BGRA problem needs some thought to retain compatibility with DirectX 9 (NestDrop).
 

Posted Fri 08 Jan 21 @ 5:21 am
AdionPRO InfinityCTOMember since 2006
Could not reproduce here. OnDeviceInit is always called again when video output opened again.
 

Posted Fri 08 Jan 21 @ 5:41 am
DHoudePRO InfinityMember since 2009
@Leadingedge - Sorry, I should have mentioned that I was using the 2.006 Spout VDJ Receiver. I downloaded it again this morning per your direction, and I still see the same issue.

I also do think you are correct. I vaguely remember finding this year's ago in testing. It's not really an action that I do when connected to a big system, but I was investigating something. I have to go to work, but I will show you what I am talking about ASAP
 

Posted Fri 08 Jan 21 @ 11:33 am
Thanks Adion,

I am not sure what's going on because when I tested again just now, OnDeviceClose/OnDeviceInit were called as expected with click off and on. OnStart and OnStop were not called. This happens whether a video is already playing or not (on the left deck). I have not turned the computer off and there has been no notice to upgrade.

I definitely could reproduce Don Houde's findings and got OnStart instead of OnDeviceInit repeatedly when I was working on it. But I have since made changes for RGBA/DirectX9 texture format compatibility, so something might have changed that caused this previously.

It doesn't matter to the plugin now because whatever happens it will reset everything, but I will keep an eye on it.

I have updated for RGBA/DX9 formats :

https://github.com/leadedge/SpoutVDJ/raw/beta/Source/x64/Binaries/VDJSpoutReceiver64.dll

Edit:
Don, try this version and see what happens. I do recall the same problem some years back.

 

Posted Fri 08 Jan 21 @ 12:22 pm
NicotuxHome userMember since 2014
DeclareParameterPosition is one of the multiple features "not yet exposed" in SDK8 (but was explain some time ago - by Adion if I remenber correctly - as well as some other) It is used by some internal plugins such as "cover"

All render issues seem VDJ related, and need a good knowledge in DX and VDJ - SBDJ only have both

The difference between RGBA / BGRA ?
tested with WinSpoutDX.exe (Koala) and SpoutSender.exe (Videpo cube) and Tutorial04.exe when some are in use, some disapear from the list of available senders in spoutpanel... often BGRA one (looks like RGBA takes preference)

In fact RGBA does not always render (still images) and BGRA disappears when format is specified in CreateDX11Texture depending on static images/video (something is not updating when restarting ?)
if (format != 0) texformat = format;
looks like the "format" is altered in some way even all calls use DXGI_FORMAT_B8G8R8A8_UNORM for it

There are issues receiving from different senders at the same time
and Overlay on a deck disapears when a track is loaded

You are right, Sending/receiving from decks to decks using SPOUT is not a good idea
(better use a native plugin for that) so that you are right better not receive from VDJ
 

Posted Fri 08 Jan 21 @ 3:27 pm
NicotuxHome userMember since 2014
sorry for the previous post comming late.. was pending... written before a 8H internet blakout
 

Posted Fri 08 Jan 21 @ 3:37 pm
NicotuxHome userMember since 2014
Does not refresh the sender when format differs but size are the same

VDJSpoutReceiver64_Overlay updated:
Updated to match Latest Leadedge's fixes
Added fix for sender with same size but not same format (not sure all case are handled)
Dll can now rename and take care of correct refused senders (with Release bus as well )
Decks can overlay one sender while master overlay another one with different formats
 

Posted Fri 08 Jan 21 @ 8:20 pm
NicotuxHome userMember since 2014
Strange some format display only when no track is loaded (koala from WindowsSender aka WindowSpoutDX) while other do (colorized cube from Direct3D 11 Tutorial 4) and other senders disapear from spoutpanel (spout DX11 sender) when a sender use these format :/
and there is already cases where render need to restart plugin to display (or reset)
not yet stable :\
EDIIT:
- added some extra DX9formats and it seems to work better (but with track loaded)
- Senders that do not in panel can be specified "manually" in text area and can be used ok

 

Posted Fri 08 Jan 21 @ 11:17 pm
DHoudePRO InfinityMember since 2009
@Lynn, Yup, the updated Receiver fixed the Main deck screen click issue I was having. Everything as expected now!

Great work to all! This is getting good!
 

Posted Sat 09 Jan 21 @ 12:27 am
OK thanks Nicotux - now I understand about the experimental header files. I was not aware of these. I assume that if I use them it will not affect anything that isn't using the undocumented functions. I will have a look at the changes you have made and work on formats a little more.
 

Posted Sat 09 Jan 21 @ 12:28 am
NicotuxHome userMember since 2014
In fact it only looks like "koala" like image format only do not show when a track was loaded on deck
other tested formats showing correctly
https://ibb.co/t855zGZ
(the deck2 spout receiving from spoutsender64 on deck 4)

about "undocumented" functions...
They are only "new functions" added since latest official SDK release
(only additions that were explain in some threads, no existing feature have been touched)
there is a comment for each about status "official" and "testing"
Existing but not explain are not set
 

Posted Sat 09 Jan 21 @ 1:05 am
Ok I will use these header files. The koala sender gives me something to look at.

I am also trying to test your position control but it's not working. I get a position control OK which is a rectangle under the main deck window. When I move over it, the cursor changes to a cross. Single click doesn't appear to do anything. If I hold it down, the sender selection dialog pops up. After that, the dialog pops up by just moving over the control.

What should I be doing and what should happen?


 

Posted Sat 09 Jan 21 @ 1:36 am
NicotuxHome userMember since 2014
lol, that's the OnParameter() ... you missed it
only open when button 1 is pressed not button 2
// Activate SpoutPanel to select a sender
if (ParamID == 1)
OpenSpoutPanel();
...
The position is working the same as cover one: resize by moving edges(double arrows), position by dragging (cross)
by the way, to fine adjust yoy can resize the dialog box
 

Posted Sat 09 Jan 21 @ 1:45 am
OK I got it. I don't use this software by the way.
 

Posted Sat 09 Jan 21 @ 1:56 am
 

Posted Sat 09 Jan 21 @ 2:06 am
NicotuxHome userMember since 2014
it works fine on a deck as long no track was loaded
(looks like video display on top)
as soon as track unloads it shows
same for master, it disappears as soon as a deck shows something
(videos does not experience this)
maybe still images are not updating on top of video ?
(tested with your last version as well ;)
 

Posted Sat 09 Jan 21 @ 2:13 am
NicotuxHome userMember since 2014
As well switching from a sender to another with other format needs to apply twice before it shows
I experience this with all version when compiled as overlay
 

Posted Sat 09 Jan 21 @ 2:47 am
I have included an optional #define in the header file to build as an Overlay with your modifications. Otherwise the project will build as a receiver as usual. Hopefully you will able able to copy the entire project and work from there. If not, I will try to make it compatible. Also I have included the revised VirtualDJ header files.

I think the problem with the Koala image sender is with the sender code rather than the Receiver plugin. I am not sure what the problem is. I have confirmed that it's not because the image is static or that a new frame is not signaled. I will look further into it later. Meanwhile if any other senders show the same problem I will move this forwards.

The problem of missing senders in the list is probably with "SpoutPanel.exe". I have uploaded the latest version 2.36 with the dll binaries. Copy it somewhere convenient and run it once. Thereafter you should see 2.36 at lower left.

I can't reproduce the select twice problem when changing formats.

The receiver should be close. I can't see any reason why the overlay should not work the same.

Edit: I noticed a mistake with "infos->PluginName" for the overlay. I will fix it next time round.
 

Posted Sat 09 Jan 21 @ 4:50 am
67%