aboutsummaryrefslogtreecommitdiffstats
path: root/src/subchan_demux.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/subchan_demux.c')
-rw-r--r--src/subchan_demux.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/subchan_demux.c b/src/subchan_demux.c
index 86ddc86cd..c6b9a67e4 100644
--- a/src/subchan_demux.c
+++ b/src/subchan_demux.c
@@ -62,6 +62,7 @@ static void resync_to_here(struct demux_subch *sch)
/* set index in a way that we can continue receiving bits after
* the end of the SYNC header */
sch->out_idx = SYNC_HDR_BITS;
+ sch->in_sync = 1;
}
int subch_demux_init(struct subch_demux *dmx)
@@ -126,8 +127,11 @@ int subch_demux_in(struct subch_demux *dmx, u_int8_t *data, int len)
/* once we have reached TRAU_FRAME_BITS, call
* the TRAU frame handler callback function */
if (sch->out_idx >= TRAU_FRAME_BITS) {
- dmx->out_cb(dmx, c, sch->out_bitbuf,
+ if (sch->in_sync) {
+ dmx->out_cb(dmx, c, sch->out_bitbuf,
sch->out_idx, dmx->data);
+ sch->in_sync = 0;
+ }
sch->out_idx = 0;
}
}