casparcg-connection icon indicating copy to clipboard operation
casparcg-connection copied to clipboard

Locks up if info() is given channel and/or layer

Open toresbe opened this issue 4 years ago • 2 comments

  • I'm submitting a ... [x] bug report [ ] feature request [ ] question about the decisions made in the repository [ ] question about how to use this project

  • Summary

Issuing simply info() works perfectly. But if I request info for layer or layer-channel, it will freeze indefinitely.

Code to reproduce:

const casparState = await connection.info(1);

Console debug in node app:

New command added, "InfoCommand". 1 command(s) in command queues.
Sending command, "InfoCommand" with priority "NORMAL". undefined command(s) in sentCommands, 0 command(s) in command queues.
REQ ekkwp8n INFO 1
Handling response, "InfoCommand" with token "ekkwp8n"

Caspar log:

[2021-02-03 20:09:22.712] [info]    Received message from 192.168.3.1: REQ r56b26h INFO 1\r\n
[2021-02-03 20:09:22.713] [info]    Sent more than 512 bytes to 192.168.3.1

This is the data returned if I replay the issued command in a telnet session:

REQ dbinhfr INFO 1\r\n
RES dbinhfr 201 INFO OK
<?xml version="1.0" encoding="utf-8"?>
<channel>
   <framerate>50</framerate>
   <framerate>1</framerate>
   <mixer>
      <audio>
         <volume>5242880</volume>
         <volume>5242880</volume>
         <volume>0</volume>
         <volume>0</volume>
         <volume>0</volume>
         <volume>0</volume>
         <volume>0</volume>
         <volume>0</volume>
      </audio>
   </mixer>
   <stage>
      <layer>
         <layer_100>
            <background>
               <producer>empty</producer>
            </background>
            <foreground>
               <file>
                  <path>media/stills/screenbug.png</path>
               </file>
               <paused>false</paused>
               <producer>image</producer>
            </foreground>
         </layer_100>
         <layer_50>
            <background>
               <producer>empty</producer>
            </background>
            <foreground>
               <file>
                  <clip>370.27999999999997</clip>
                  <clip>1867</clip>
                  <name>625695/broadcast/Running_an_SME_on_Debian.dv</name>
                  <path>media//625695/broadcast/Running_an_SME_on_Debian.dv</path>
                  <streams>
                     <file>
                        <streams_0>
                           <fps>25</fps>
                           <fps>1</fps>
                        </streams_0>
                        <streams_1>
                           <fps>0</fps>
                           <fps>0</fps>
                        </streams_1>
                     </file>
                  </streams>
                  <time>1118.8</time>
                  <time>2237.2800000000002</time>
               </file>
               <loop>false</loop>
               <paused>false</paused>
               <producer>ffmpeg</producer>
            </foreground>
         </layer_50>
      </layer>
   </stage>
</channel>
  • Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. StackOverflow, personal fork, etc.)

Caspar version is main branch HEAD built in docker image.

toresbe avatar Feb 03 '21 20:02 toresbe

Hi @toresbe,

As you can find under readme#features this project only supports AMCP protocol 2.0 and 2.1, the response you listed was added in 2.2 (or maybe 2.3) and differs quite a lot from the 2.1 implementation therefore it unfortunately won't work.

mint-dewit avatar Feb 03 '21 21:02 mint-dewit

Ahhh! My mistake, terribly sorry. Are there any plans for 2.3 support in the future?

toresbe avatar Feb 03 '21 21:02 toresbe

This is fixed as of version 6.0.0

mint-dewit avatar Nov 11 '22 09:11 mint-dewit