Open super-ienien opened 5 years ago
Which ones would you like to see brought back?
INFO
& INFO 1
already have been.
INFO TEMPLATE
might be tricky as that kind of logic is now supposed to be outsourced to media-scanner and trying to get it to interpret the ft templates the same will be hard/messy.
INFO CONFIG
and INFO PATHS
would be simple to do
INFO SYSTEM
has had all the data sources stripped out, so would be better to avoid
INFO SERVER
is pretty much just a bunch of INFO x
, so can be done manually?
INFO QUEUES
could be brought back, not sure how many uses it has though
INFO THREADS
& INFO DELAY
not sure of the benefits of these
Did I miss any?
I think most important are solutions to retrieve info about
Hi @premultiply
I don't understand, the things you are referring to has been there since February, or something, last year. ;) The only thing not implemented is the template info (fields and their names)
Have a look here. https://github.com/5opr4ni/help/wiki/AMCP-2.2#info
ex.
PLAY 1-10 PLAY_TIME SEEK 15340 LENGTH 125125
INFO 1
Returns
<?xml version="1.0" encoding="utf-8"?>
<channel>
<framerate>50</framerate>
<framerate>1</framerate>
<mixer>
<audio>
<volume>115775648</volume>
<volume>97853664</volume>
<volume>53128900</volume>
<volume>44045544</volume>
<volume>0</volume>
<volume>0</volume>
<volume>0</volume>
<volume>0</volume>
</audio>
</mixer>
<stage>
<layer>
<layer_10>
<background>
<producer>empty</producer>
</background>
<foreground>
<file>
<clip>306.80000000000001</clip>
<clip>2502.5</clip>
<name>PLAY_TIME.m4v</name>
<path>c:/caspar/_MEDIA/Play_Time.m4v</path>
<streams>
<file>
<streams_0>
<fps>25</fps>
<fps>1</fps>
</streams_0>
<streams_1>
<fps>0</fps>
<fps>0</fps>
</streams_1>
<streams_2>
<fps>0</fps>
<fps>0</fps>
</streams_2>
<streams_3>
<fps>90000</fps>
<fps>1</fps>
</streams_3>
</file>
</streams>
<time>1004.36</time>
<time>7147.2799999999997</time>
</file>
<loop>false</loop>
<paused>false</paused>
<producer>ffmpeg</producer>
</foreground>
</layer_10>
</layer>
</stage>
</channel>
@julusian
For me what should be reimplemented is the INFO CONFIG and INFO PATHS has there is no other way to retrieve the default config values to my knowledge.
For the INFO TEMPLATE i do not know because i’m Not using it.
Couldn't this be implemented outside the server, like the media scanner, in that way we could make it extendable, so it wouldn't inflict with the server? Just a thought! A way to build special commands residing "server side". Maybe also implement a kind of scripting support so that it would be possible to create new "virtual" AMCP commands.
I totally agreed that the new media scanner is a smart move. May INFO PATHS could be a part of it. But I don’t see the reason why externalizing INFO CONFIG would be better.
@5opr4ni sounds like you are thinking of https://github.com/CasparCG/server/issues/1135
CONFIG and PATHS are super simple though, and would only be a few pretty simple lines each inside the amcp files, so I'm not worried about complexity of those. The others are more complex/meessy, so once we know what is actually wanted it can be discussed where they reside or how they are implemented
@julusian Yes!
I don't understand, the things you are referring to has been there since February, or something, last year. ;) The only thing not implemented is the template info (fields and their names)
Have a look here. https://github.com/5opr4ni/help/wiki/AMCP-2.2#info
You are right, but this description can not be found in the official CasparCG github Wiki or anywhere else there.
For me this XML structure should be improved a little bit to make it easier to parse like this for example:
<?xml version="1.0" encoding="utf-8"?>
<channel id="1">
<framerate n="50" d="1">50.0000</framerate>
<mixer>
<audio>
<volume ch="1">115775648</volume>
<volume ch="2">97853664</volume>
<volume ch="3">53128900</volume>
<volume ch="4">44045544</volume>
<volume ch="5">0</volume>
<volume ch="6">0</volume>
<volume ch="7">0</volume>
<volume ch="8">0</volume>
</audio>
</mixer>
<stage>
<layers>
<layer id="10">
<background>
<producer>empty</producer>
</background>
<foreground>
<file>
<clip_in>306.80000000000001</clip_in>
<clip_out>2502.5</clip_out>
<name>PLAY_TIME.m4v</name>
<path>c:/caspar/_MEDIA/Play_Time.m4v</path>
<streams>
<file>
<stream id="0" type="video">
<fps numerator="25" denominator="1">25.0000</fps>
</stream>
<stream id="1" type="unknown">
</stream>
<stream id="2" type="unknown">
</stream>
<stream id="3" type="audio">
<fps n="90000" d="1">90000.0000</fps>
</stream>
</file>
</streams>
<time_clip>1004.36</time_clip>
<time_total>7147.2799999999997</time_total>
</file>
<loop>false</loop>
<paused>false</paused>
<producer>ffmpeg</producer>
</foreground>
</layer>
</layers>
</stage>
</channel>
Hi
We want to keep everything at a bare minimum. The info should not differ from the OSC which is pumped out in a high frequency, so we need to keep it as clean as possible. Everything is absolute, so you can get what you want at client side. The servers main responsibility is to serve videoframes not format text.
/o
True regarding the docs, we are writing new documentation when there is time. We are a small group doing everything. Would be nice with som help. ;)
I think INFO PATHS can be send to the elderly home :) As it can easy be extracted from the config and anyway only really helps when the client runs on the same machine as the server and so it is easy to get a hold to the config file.
What I would like to see is something similar to INFO TEMPLATE, that can be used to query metadata from templates. Would be good to find a solution for HTML, scene and PSD templates to give back the information's about their fields also. But can be implemented in Scanner.exe if it is easier.
I think INFO PATHS can be send to the elderly home :)
Sorry @didikunz, i don't agree with you. INFO PATHS is useful in case where the client doesn't know where the server is located on the filesystem because it provide absolute file paths. INFO CONFIG just provides paths as they are specified in the config file.
And it is common to have client and server on the same machine
To make it short, the only way for a local client to know where the Server is installed is by INFO PATHS
My clients normally start the (local) servers along with itself, so they always know were the server is in the file system. But that is the reason, why we discuss these issues here, to find out, what is needed and what not. I do not mind keeping INFO PATHS but only commented my opinion on this.
After Background info and Foreground info for non-playing files has been added to OSC, I think OSC can do most of whats needed. And I plan is to support 2.2 in my CasparCG-state-scanner, and transition the ClipTool to the 2.2 server.
By using something like the CCG-state-scanner it´s easy to subscribe to a lot of info from the machine. Right now I primary use it for "Let me know if there are there changes in the thumb folder", "Give me the latest playing time of all channels" and "Give me new channel-layer info when ever something new has happened on the server"
The good thing with the OSC, is that it can stream out a lot of data very fast, the weak thing (IMHO) is that it´s a server->client connection, and as the ACMP is a client-server connection, you need to open op port on both sides. By using a thing like the CCG-state-scanner you only need to open up port on the CCG server and let it act like a web Graphql API.
If anyone has wishes for the https://github.com/olzzon/casparcg-state-scanner please let me know, and I´ll try to implement it. (Right now it´s mainly build for TV2 DK purposes) But I think that no matter what, it would be great to have a functionality like this for CasparCG
Hmm, so it turns out that the old INFO TEMPLATE
code hasn't really been removed at all. Only the 11 lines of code that exposes it to amcp has...
It really should be moved to the scanner though
INFO CONFIG and INFO PATHS are now in 2.3 INFO TEMPLATE is something for the media-scanner to implement (https://github.com/CasparCG/media-scanner/issues/38) once it has been done there, then an AMCP wrapper for it can be added.
As far as I can tell nothing else is wanted from this task, or did I miss something else?
Hey @Julusian. Thanks a lot ! That's perfect.
May be return INFO SYSTEM for enumerate Decklink/Blowfish/NDI/OpelAL/Screen devices? I can make PR.
@drakmor do you mean available consumers or ones assigned to channels?
The ones in use ought to be part of INFO and OSC, but it appears to not be for some reason. And the system for listing available devices, and the rest of the INFO SYSTEM command looks to have been mostly stripped away. I do think that being able to list decklink devices is very useful to have though.
Yes, list of available consumers.
Maybe roll back this commit? - https://github.com/CasparCG/server/commit/5118dd23acf03f5891c37376fad76cb81531d227
First, I wan't to thank you for what your doing with CasparCG. That's awesome guys !
Expected behaviour
I would expect that AMCP 2.2 still provide a command to get informations about config, paths, template etc
Current behaviour
The INFO [PATH | TEMPLATE | PATHS | ...] commands have been replaced by INFO [channel_id] but there is no new command that provide a way to get thoses precious informations that we had with AMCP 2.1.
Environment
Operating system: Windows 10
In order to know what is the best solution for me to manage this issue in my own casparCG client, could you tell me what do you plan to do ? Leave AMCP that way, go back to get the behavior of AMCP 2.1 or implement new commands ?
Thanks a lot ;)