summaryrefslogtreecommitdiff
authorKe Gong <ke.gong@amlogic.com>2017-04-06 02:50:16 (GMT)
committer Ke Gong <ke.gong@amlogic.com>2017-04-06 02:50:16 (GMT)
commitd41c9def52f02ad5629ee9bfe4f3bb43b433b257 (patch)
treef4f473ef16944d45ebef59b0191ddcf0418bb1b9
parent1ad9040ebcecaa23b93254121937ad074255f48c (diff)
downloadlibzvbi-d41c9def52f02ad5629ee9bfe4f3bb43b433b257.zip
libzvbi-d41c9def52f02ad5629ee9bfe4f3bb43b433b257.tar.gz
libzvbi-d41c9def52f02ad5629ee9bfe4f3bb43b433b257.tar.bz2
PD#141549: add TSID parser
Change-Id: I1326c85bc183a0c0a489f0a5a777faf48dc0bf14
Diffstat
-rw-r--r--src/caption.c16
-rw-r--r--src/event.h3
2 files changed, 19 insertions, 0 deletions
diff --git a/src/caption.c b/src/caption.c
index 90e7a67..14fd738 100644
--- a/src/caption.c
+++ b/src/caption.c
@@ -502,6 +502,8 @@ xds_decoder(vbi_decoder *vbi, int _class, int type,
break;
case XDS_CHANNEL:
+ n->ts_id = -1;
+
switch (type) {
case 1: /* network name */
if (xds_strfu(n->name, buffer, length)) {
@@ -554,6 +556,20 @@ xds_decoder(vbi_decoder *vbi, int _class, int type,
break;
+ case 4: /* Transmission Signal ID */
+ if (length < 4)
+ return;
+
+ n->ts_id =
+ ((buffer[3] & 15) << 0)
+ |((buffer[2] & 15) << 4)
+ |((buffer[1] & 15) << 8)
+ |((buffer[0] & 15) << 12);
+
+ vbi->network.type = VBI_EVENT_NETWORK;
+ caption_send_event(vbi, &vbi->network);
+ break;
+
default:
break;
}
diff --git a/src/event.h b/src/event.h
index 7b699a3..1977cef 100644
--- a/src/event.h
+++ b/src/event.h
@@ -128,6 +128,9 @@ typedef struct {
/** Private. */
int cycle;
+
+ /** Transmission Signal ID */
+ int ts_id;
} vbi_network;
/*