<!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>