author | yan yan <yan.yan@amlogic.com> | 2017-12-12 03:56:10 (GMT) |
---|---|---|
committer | yan yan <yan.yan@amlogic.com> | 2017-12-12 03:59:18 (GMT) |
commit | 517cd69d54b05d5382940f38cb284c301fc89603 (patch) | |
tree | ab566c67b64278ff3c5dabb5172692356733f3ac | |
parent | 33a0d2c2aef2b9919b97f153c31fc4dc9bdb0ea7 (diff) | |
download | libzvbi-517cd69d54b05d5382940f38cb284c301fc89603.zip libzvbi-517cd69d54b05d5382940f38cb284c301fc89603.tar.gz libzvbi-517cd69d54b05d5382940f38cb284c301fc89603.tar.bz2 |
PD#NONE: zvbi: decode XDS without XDS end command
1. decode XDS without XDS end command
Change-Id: Icd4b0777c58a3a8aa3ca4befa3e32ad5df8c0cc9
-rw-r--r-- | src/caption.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/caption.c b/src/caption.c index 6320e9a..27de703 100644 --- a/src/caption.c +++ b/src/caption.c @@ -1442,6 +1442,13 @@ vbi_decode_caption(vbi_decoder *vbi, int line, uint8_t *buf) cc->xds = (c1 != XDS_END); goto finish; } else if (c1 <= 0x1F) { + xds_sub_packet *sp = cc->curr_sp; + unsigned int class, type; + if (sp) { + class = (sp - cc->sub_packet[0]) / elements(cc->sub_packet[0]); + type = (sp - cc->sub_packet[0]) % elements(cc->sub_packet[0]); + xds_decoder(vbi, class, type, sp->buffer, sp->count - 2); + } cc->xds = FALSE; } else if (cc->xds) { xds_separator(vbi, buf); |