diff options
-rw-r--r-- | src/dabplus-enc-file-zmq.c | 19 | ||||
-rw-r--r-- | src/utils.h | 4 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/dabplus-enc-file-zmq.c b/src/dabplus-enc-file-zmq.c index 106e110..1bfae12 100644 --- a/src/dabplus-enc-file-zmq.c +++ b/src/dabplus-enc-file-zmq.c @@ -412,9 +412,12 @@ int main(int argc, char *argv[]) { return 0; } - int loops = 0; int outbuf_size = subchannel_index*120; - uint8_t outbuf[20480]; + uint8_t zmqframebuf[2048]; + struct zmq_frame_header_t *zmq_frame_header = + (struct zmq_frame_header_t*)zmqframebuf; + + uint8_t outbuf[2048]; if(outbuf_size % 5 != 0) { fprintf(stderr, "(outbuf_size mod 5) = %d\n", outbuf_size % 5); @@ -554,7 +557,17 @@ int main(int argc, char *argv[]) { } if (zmq_sock) { - send_error = zmq_send(zmq_sock, outbuf, outbuf_size, ZMQ_DONTWAIT); + zmq_frame_header->version = 1; + zmq_frame_header->encoder = ZMQ_ENCODER_FDK; + zmq_frame_header->datasize = outbuf_size; + zmq_frame_header->audiolevel_left = peak_left; + zmq_frame_header->audiolevel_right = peak_right; + + memcpy(ZMQ_FRAME_DATA(zmq_frame_header), + outbuf, outbuf_size); + + send_error = zmq_send(zmq_sock, zmqframebuf, + ZMQ_FRAME_SIZE(zmq_frame_header), ZMQ_DONTWAIT); if (send_error < 0) { fprintf(stderr, "ZeroMQ send failed! %s\n", zmq_strerror(errno)); send_error_count ++; diff --git a/src/utils.h b/src/utils.h index aa8dc8a..a5aaf8c 100644 --- a/src/utils.h +++ b/src/utils.h @@ -37,9 +37,9 @@ struct zmq_frame_header_t #define ZMQ_ENCODER_FDK 1 /* The expected frame size incl data of the given frame */ -#define ZMQ_FRAME_SIZE(f) (sizeof(zmq_frame_header_t) + f->datasize) +#define ZMQ_FRAME_SIZE(f) (sizeof(struct zmq_frame_header_t) + f->datasize) -#define ZMQ_FRAME_DATA(f) ( ((uint8_t*)f)+sizeof(zmq_frame_header_t) ) +#define ZMQ_FRAME_DATA(f) ( ((uint8_t*)f)+sizeof(struct zmq_frame_header_t) ) #endif |