summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2005-05-09 10:21:09 +0000
committerMarcel Holtmann <marcel@holtmann.org>2005-05-09 10:21:09 +0000
commitc16a9ffd5ee7ad3a184bc3c5ddac2d0049d7243d (patch)
treee2d86109ad0a60ef97cafc6b1b12743f3a92e8d1
parentb4d9988bdaadfe79fd802793e16ef1f77f8c537c (diff)
Add support for the duration calculation
-rw-r--r--alsa/sbc.c4
-rw-r--r--alsa/sbc.h2
2 files changed, 6 insertions, 0 deletions
diff --git a/alsa/sbc.c b/alsa/sbc.c
index bd767768..3cebee1f 100644
--- a/alsa/sbc.c
+++ b/alsa/sbc.c
@@ -1278,6 +1278,8 @@ int sbc_decode(sbc_t *sbc, void *data, int count)
sbc->len = samples * priv->frame.channels * 2;
+ sbc->duration = (1000000 * priv->frame.subbands * priv->frame.blocks) / sbc->rate;
+
return framelen;
}
@@ -1337,6 +1339,8 @@ int sbc_encode(sbc_t *sbc, void *data, int count)
sbc->len = framelen;
+ sbc->duration = (1000000 * priv->frame.subbands * priv->frame.blocks) / sbc->rate;
+
return samples * sbc->channels * 2;
}
diff --git a/alsa/sbc.h b/alsa/sbc.h
index 02353160..568b1d7e 100644
--- a/alsa/sbc.h
+++ b/alsa/sbc.h
@@ -41,6 +41,8 @@ struct sbc_struct {
int size;
int len;
+ unsigned long duration;
+
void *priv;
};