input: use common support to send samplerate meta packet

This commit is contained in:
Gerhard Sittig 2020-06-11 17:19:01 +02:00
parent 9084c39608
commit f8a8d4bb70
7 changed files with 13 additions and 71 deletions

View File

@ -69,9 +69,7 @@ static int init(struct sr_input *in, GHashTable *options)
static int process_buffer(struct sr_input *in) static int process_buffer(struct sr_input *in)
{ {
struct sr_datafeed_packet packet; struct sr_datafeed_packet packet;
struct sr_datafeed_meta meta;
struct sr_datafeed_logic logic; struct sr_datafeed_logic logic;
struct sr_config *src;
struct context *inc; struct context *inc;
gsize chunk_size, i; gsize chunk_size, i;
int chunk; int chunk;
@ -81,13 +79,8 @@ static int process_buffer(struct sr_input *in)
std_session_send_df_header(in->sdi); std_session_send_df_header(in->sdi);
if (inc->samplerate) { if (inc->samplerate) {
packet.type = SR_DF_META; (void)sr_session_send_meta(in->sdi, SR_CONF_SAMPLERATE,
packet.payload = &meta; g_variant_new_uint64(inc->samplerate));
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);
} }
inc->started = TRUE; inc->started = TRUE;

View File

@ -130,9 +130,7 @@ static int init(struct sr_input *in, GHashTable *options)
static int process_buffer(struct sr_input *in) static int process_buffer(struct sr_input *in)
{ {
struct sr_datafeed_packet packet; struct sr_datafeed_packet packet;
struct sr_datafeed_meta meta;
struct sr_datafeed_logic logic; struct sr_datafeed_logic logic;
struct sr_config *src;
struct context *inc; struct context *inc;
gsize chunk_size, i; gsize chunk_size, i;
gsize chunk; gsize chunk;
@ -145,13 +143,8 @@ static int process_buffer(struct sr_input *in)
std_session_send_df_header(in->sdi); std_session_send_df_header(in->sdi);
if (inc->samplerate) { if (inc->samplerate) {
packet.type = SR_DF_META; (void)sr_session_send_meta(in->sdi, SR_CONF_SAMPLERATE,
packet.payload = &meta; g_variant_new_uint64(inc->samplerate));
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);
} }
inc->samples_remain = CHRONOVU_LA8_DATASIZE; inc->samples_remain = CHRONOVU_LA8_DATASIZE;

View File

@ -277,21 +277,13 @@ struct context {
static int flush_samplerate(const struct sr_input *in) static int flush_samplerate(const struct sr_input *in)
{ {
struct context *inc; struct context *inc;
struct sr_datafeed_packet packet;
struct sr_datafeed_meta meta;
struct sr_config *src;
inc = in->priv; inc = in->priv;
if (!inc->calc_samplerate && inc->samplerate) if (!inc->calc_samplerate && inc->samplerate)
inc->calc_samplerate = inc->samplerate; inc->calc_samplerate = inc->samplerate;
if (inc->calc_samplerate && !inc->samplerate_sent) { if (inc->calc_samplerate && !inc->samplerate_sent) {
packet.type = SR_DF_META; (void)sr_session_send_meta(in->sdi, SR_CONF_SAMPLERATE,
packet.payload = &meta; g_variant_new_uint64(inc->calc_samplerate));
src = sr_config_new(SR_CONF_SAMPLERATE, g_variant_new_uint64(inc->calc_samplerate));
meta.config = g_slist_append(NULL, src);
sr_session_send(in->sdi, &packet);
g_slist_free(meta.config);
sr_config_free(src);
inc->samplerate_sent = TRUE; inc->samplerate_sent = TRUE;
} }

View File

@ -842,8 +842,6 @@ static int send_buffer(struct sr_input *in)
{ {
struct context *inc; struct context *inc;
struct sr_datafeed_packet packet; struct sr_datafeed_packet packet;
struct sr_datafeed_meta meta;
struct sr_config *src;
struct sr_datafeed_logic logic; struct sr_datafeed_logic logic;
int rc; int rc;
@ -859,14 +857,8 @@ static int send_buffer(struct sr_input *in)
} }
if (inc->sample_rate && !inc->rate_sent) { if (inc->sample_rate && !inc->rate_sent) {
packet.type = SR_DF_META; rc = sr_session_send_meta(in->sdi, SR_CONF_SAMPLERATE,
packet.payload = &meta;
src = sr_config_new(SR_CONF_SAMPLERATE,
g_variant_new_uint64(inc->sample_rate)); g_variant_new_uint64(inc->sample_rate));
meta.config = g_slist_append(NULL, src);
rc = sr_session_send(in->sdi, &packet);
g_slist_free(meta.config);
sr_config_free(src);
if (rc) if (rc)
return rc; return rc;
inc->rate_sent = TRUE; inc->rate_sent = TRUE;

View File

@ -155,9 +155,6 @@ static int init(struct sr_input *in, GHashTable *options)
static int process_buffer(struct sr_input *in) static int process_buffer(struct sr_input *in)
{ {
struct context *inc; struct context *inc;
struct sr_datafeed_meta meta;
struct sr_datafeed_packet packet;
struct sr_config *src;
unsigned int offset, chunk_size; unsigned int offset, chunk_size;
inc = in->priv; inc = in->priv;
@ -165,13 +162,8 @@ static int process_buffer(struct sr_input *in)
std_session_send_df_header(in->sdi); std_session_send_df_header(in->sdi);
if (inc->samplerate) { if (inc->samplerate) {
packet.type = SR_DF_META; (void)sr_session_send_meta(in->sdi, SR_CONF_SAMPLERATE,
packet.payload = &meta; g_variant_new_uint64(inc->samplerate));
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);
} }
inc->started = TRUE; inc->started = TRUE;

View File

@ -407,21 +407,11 @@ static void create_channels(struct sr_input *in)
static void send_metadata(struct sr_input *in) static void send_metadata(struct sr_input *in)
{ {
struct sr_datafeed_packet packet;
struct sr_datafeed_meta meta;
struct sr_config *src;
struct context *inc; struct context *inc;
inc = in->priv; inc = in->priv;
(void)sr_session_send_meta(in->sdi, SR_CONF_SAMPLERATE,
packet.type = SR_DF_META; g_variant_new_uint64(inc->samplerate));
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);
inc->meta_sent = TRUE; inc->meta_sent = TRUE;
} }

View File

@ -253,24 +253,14 @@ static void send_chunk(const struct sr_input *in, int offset, int num_samples)
static int process_buffer(struct sr_input *in) static int process_buffer(struct sr_input *in)
{ {
struct context *inc; struct context *inc;
struct sr_datafeed_packet packet;
struct sr_datafeed_meta meta;
struct sr_config *src;
int offset, chunk_samples, total_samples, processed, max_chunk_samples; int offset, chunk_samples, total_samples, processed, max_chunk_samples;
int num_samples, i; int num_samples, i;
inc = in->priv; inc = in->priv;
if (!inc->started) { if (!inc->started) {
std_session_send_df_header(in->sdi); std_session_send_df_header(in->sdi);
(void)sr_session_send_meta(in->sdi, SR_CONF_SAMPLERATE,
packet.type = SR_DF_META; g_variant_new_uint64(inc->samplerate));
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);
inc->started = TRUE; inc->started = TRUE;
} }