Verified Commit fb63394c authored by Daniel Bermond's avatar Daniel Bermond
Browse files

Fix build

The current code fails to build with the following error:

../libndi/libndi.c: In function ‘process_audio_message’:
../libndi/libndi.c:293:33: error: expected ‘;’ before ‘{’ token
  293 |                 } else(bps == 4) {
      |                                 ^~
      |                                 ;

The else block does not accept a condition. This can be fixed by
changing 'else(bps == 4)' to 'else if(bps == 4)'.

After doing this change, another error is shown:

../libndi/libndi.c: In function ‘process_audio_message’:
../libndi/libndi.c:297:57: error: incompatible type for argument 2 of ‘memcpy’
  297 |                     memcpy(&ndi_data.buf[i]->data[4*j], sf, sizeof(sf));
      |                                                         ^~
      |                                                         |
      |                                                         float

memcpy src argument needs a pointer, not a direct float value.

Both errors are caused by commit 4bd2c9df.

Tested with gcc 10.1.0.
parent 4bd2c9df
......@@ -290,11 +290,11 @@ static int process_audio_message(ndi_ctx *ndi_ctx, uint8_t *data, int header_len
if(bps == 2) {
ndi_data.buf[i]->data[2*j+0] = data[1];
ndi_data.buf[i]->data[2*j+1] = data[0];
} else(bps == 4) {
} else if(bps == 4) {
float sf = scale_factors[i] / 32767.0f;
int16_t sample = ((uint16_t)data[1] << 8) | data[0];
sf *= sample;
memcpy(&ndi_data.buf[i]->data[4*j], sf, sizeof(sf));
memcpy(&ndi_data.buf[i]->data[4*j], &sf, sizeof(sf));
}
data += sizeof(int16_t);
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment