summaryrefslogtreecommitdiff
authorYan Yan <yan.yan@amlogic.com>2017-08-29 08:10:05 (GMT)
committer Yan Yan <yan.yan@amlogic.com>2017-08-29 08:10:05 (GMT)
commitd8e61a6dabfae2b279a5400fd6250bede087bb7f (patch)
treee6f0af45a4671957db73e4dbb10b723028796541
parentb1f759d21868dc9e8068518fa4b812daf9a4fc59 (diff)
downloadlibzvbi-d8e61a6dabfae2b279a5400fd6250bede087bb7f.zip
libzvbi-d8e61a6dabfae2b279a5400fd6250bede087bb7f.tar.gz
libzvbi-d8e61a6dabfae2b279a5400fd6250bede087bb7f.tar.bz2
Clear caption which in the same channel with EDM cmd
Diffstat
-rwxr-xr-xsrc/caption.c39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/caption.c b/src/caption.c
index 1e18e93..5ebc75c 100755
--- a/src/caption.c
+++ b/src/caption.c
@@ -1194,24 +1194,29 @@ caption_command(vbi_decoder *vbi, struct caption *cc,
case 12: /* Erase Displayed Memory 001 c10f 010 1100 */
// s1, s4: EDM always before EOC
- if (ch->mode != MODE_POP_ON)
- erase_memory(cc, ch, ch->hidden);
-
- /* Received this cmd in text mode */
- if(cc->curr_chan > 3)
- {
- for(i=0; i<4; i++, ch = cc->channel[i])
- {
- erase_memory (cc, ch, 0);
- erase_memory (cc, ch, 1);
- }
- }
-
- erase_memory(cc, ch, ch->hidden ^ 1);
- clear(ch->pg + (ch->hidden ^ 1));
-
+ /* Received in text mode */
+ if (cc->curr_chan >= 4)
+ {
+ for (i = 0; i < 2; i++ )
+ {
+ ch = &cc->channel[i + cc->curr_chan - 4];
+ erase_memory(cc, ch, 0);
+ erase_memory(cc, ch, 1);
+ }
+ }
+ else
+ {
+
+ if (ch->mode != MODE_POP_ON)
+ erase_memory(cc, ch, ch->hidden);
+
+ erase_memory(cc, ch, ch->hidden ^ 1);
+
+
+ clear(ch->pg + (ch->hidden ^ 1));
+ }
+
return;
-
case 14: /* Erase Non-Displayed Memory 001 c10f 010 1110 */
// not verified
if (ch->mode == MODE_POP_ON)