author | Yan 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) |
commit | d8e61a6dabfae2b279a5400fd6250bede087bb7f (patch) | |
tree | e6f0af45a4671957db73e4dbb10b723028796541 | |
parent | b1f759d21868dc9e8068518fa4b812daf9a4fc59 (diff) | |
download | libzvbi-d8e61a6dabfae2b279a5400fd6250bede087bb7f.zip libzvbi-d8e61a6dabfae2b279a5400fd6250bede087bb7f.tar.gz libzvbi-d8e61a6dabfae2b279a5400fd6250bede087bb7f.tar.bz2 |
Clear caption which in the same channel with EDM cmd
-rwxr-xr-x | src/caption.c | 39 |
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) |