Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
1 merge request!8Fix build
...@@ -290,11 +290,11 @@ static int process_audio_message(ndi_ctx *ndi_ctx, uint8_t *data, int header_len ...@@ -290,11 +290,11 @@ static int process_audio_message(ndi_ctx *ndi_ctx, uint8_t *data, int header_len
if(bps == 2) { if(bps == 2) {
ndi_data.buf[i]->data[2*j+0] = data[1]; ndi_data.buf[i]->data[2*j+0] = data[1];
ndi_data.buf[i]->data[2*j+1] = data[0]; ndi_data.buf[i]->data[2*j+1] = data[0];
} else(bps == 4) { } else if(bps == 4) {
float sf = scale_factors[i] / 32767.0f; float sf = scale_factors[i] / 32767.0f;
int16_t sample = ((uint16_t)data[1] << 8) | data[0]; int16_t sample = ((uint16_t)data[1] << 8) | data[0];
sf *= sample; 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); data += sizeof(int16_t);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment