#define LOG_PREFIX "input/binary"
-#define MAX_CHUNK_SIZE 4096
+#define CHUNK_SIZE (4 * 1024 * 1024)
#define DEFAULT_NUM_CHANNELS 8
#define DEFAULT_SAMPLERATE 0
static int process_buffer(struct sr_input *in)
{
struct sr_datafeed_packet packet;
- struct sr_datafeed_meta meta;
struct sr_datafeed_logic logic;
- struct sr_config *src;
struct context *inc;
gsize chunk_size, i;
int chunk;
std_session_send_df_header(in->sdi);
if (inc->samplerate) {
- packet.type = SR_DF_META;
- packet.payload = &meta;
- src = sr_config_new(SR_CONF_SAMPLERATE, g_variant_new_uint64(inc->samplerate));
- meta.config = g_slist_append(NULL, src);
- sr_session_send(in->sdi, &packet);
- g_slist_free(meta.config);
- sr_config_free(src);
+ (void)sr_session_send_meta(in->sdi, SR_CONF_SAMPLERATE,
+ g_variant_new_uint64(inc->samplerate));
}
inc->started = TRUE;
for (i = 0; i < chunk_size; i += chunk) {
logic.data = in->buf->str + i;
- chunk = MIN(MAX_CHUNK_SIZE, chunk_size - i);
+ chunk = MIN(CHUNK_SIZE, chunk_size - i);
+ chunk /= logic.unitsize;
+ chunk *= logic.unitsize;
logic.length = chunk;
sr_session_send(in->sdi, &packet);
}
SR_PRIV struct sr_input_module input_binary = {
.id = "binary",
.name = "Binary",
- .desc = "Raw binary",
+ .desc = "Raw binary logic data",
.exts = NULL,
.options = get_options,
.init = init,