<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi Hugh,</p>
    <p><br>
    </p>
    <p>It may have been oversight that led to the current code and lack
      of support for your mode.  Can you create a branch with the
      implementation of your fix, or just sent a diff to the list, and I
      can take a look?</p>
    <p><br>
    </p>
    <p>I am pretty sure no one has actually ever used DiFX with VDIF
      streams that are both multi-channel per thread and multi-thread,
      so this may be new ground you are covering.  In theory it should
      be supported.<br>
    </p>
    <p><br>
    </p>
    <p>Thanks,</p>
    <p><br>
    </p>
    <p>Walter<br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 5/21/25 08:57, Hugh Garsden via
      Difx-users wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CWXP265MB57657F7957F7A7269A707C9DAE9EA@CWXP265MB5765.GBRP265.PROD.OUTLOOK.COM">
      
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Hi all,</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Regarding Jake's message below, difx is using multiplexing to
        combine multiple threads into a single thread. However it can
        only deal with 1 channel per input thread because that is
        hardwired in the code.  Here:  
        <a href="https://github.com/difx/difx/blob/c2ac995454fa96de38c651f6eea484b4a5db73ca/libraries/vdifio/src/vdifmux.c#L150" id="OWAc5ea3557-12e4-1262-23d6-bd219c0c32b0" class="OWAAutoLink moz-txt-link-freetext" moz-do-not-send="true">
https://github.com/difx/difx/blob/c2ac995454fa96de38c651f6eea484b4a5db73ca/libraries/vdifio/src/vdifmux.c#L150</a>.
        The way to change that is mentioned in comment, which is to call
        setvdifmuxinputchannels(). That's what the vmux program does,
        and it works ok. I'm wondering why difx doesn't do that, and
        maybe there should be a warning about it not doing that. Anyway,
        that line of code is in configurevdifmux() so I've added a call
        to setvdifmuxinputchannels() after configurevdifmux() is called
        in difx, and now the multiplexing is working with more than 1
        channel.</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
                  Hugh</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <hr style="display:inline-block;width:98%" tabindex="-1">
      <div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b>
          Difx-users <a class="moz-txt-link-rfc2396E" href="mailto:difx-users-bounces@listmgr.nrao.edu"><difx-users-bounces@listmgr.nrao.edu></a> on
          behalf of Jacob Brooks via Difx-users
          <a class="moz-txt-link-rfc2396E" href="mailto:difx-users@listmgr.nrao.edu"><difx-users@listmgr.nrao.edu></a><br>
          <b>Sent:</b> 20 February 2025 12:12<br>
          <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:difx-users@listmgr.nrao.edu">difx-users@listmgr.nrao.edu</a>
          <a class="moz-txt-link-rfc2396E" href="mailto:difx-users@listmgr.nrao.edu"><difx-users@listmgr.nrao.edu></a><br>
          <b>Subject:</b> [Difx-users] Multi-thread 4-bit VDIF fails
          with 'vdifmux() failed with return code -2014' {External}</font>
        <div> </div>
      </div>
      <style type="text/css" style="display:none">p
        {margin-top:0;
        margin-bottom:0}</style>
      <div dir="ltr">
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          Hi all,</div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          <br>
        </div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          We're currently trying to get DiFX working with the following
          setup: 4-bit, 2 channel (L + R pols), 2 threads (2 subbands),
          delivered in real time via UDP. It has been working fine up
          until the point where we tried adding a second thread -
          single-thread VDIF has been working for us.<br>
          <br>
          When running in multi-threaded mode, the datastream processes
          crash with the following message:<br>
          <br>
          'vdifmux() failed with return code -2014, likely input buffer
          is too small!'<br>
          <br>
          I have managed to trace the problem to a check in
          'getLowestFrameNumber' in vdifio/src/vdifmux.c. The inequality
          check in that function:<br>
          <br>
          'getVDIFNumChannels(vh) != vm->inputChannelsPerThread'</div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          <br>
        </div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          succeeds as the function returns a value of 2 while
          'inputChannelsPerThread' has a value of 1. This happens for
          every iteration so vdifmux() fails and returns a -2014 error
          code.</div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          <br>
        </div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          I'm not sure where to go from here and was hoping someone more
          familiar with DiFX could help out. Hopefully I'm not missing
          something obvious! If you need any more information I haven't
          provided please do ask.</div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          <br>
        </div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          Cheers,</div>
        <div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
          Jake</div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Difx-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Difx-users@listmgr.nrao.edu">Difx-users@listmgr.nrao.edu</a>
<a class="moz-txt-link-freetext" href="https://listmgr.nrao.edu/mailman/listinfo/difx-users">https://listmgr.nrao.edu/mailman/listinfo/difx-users</a>
</pre>
    </blockquote>
  </body>
</html>