vlc | branch: master | Francois Cartegnie <[email protected]> | Thu Jul 26 11:19:44 2018 +0200| [410f727756cb32bd7eae5ef284d835938b875586] | committer: Francois Cartegnie
codec: cc: add debugging in the same way as 708 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=410f727756cb32bd7eae5ef284d835938b875586 --- modules/codec/cc.c | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/modules/codec/cc.c b/modules/codec/cc.c index 45b187023c..8e1e3f7243 100644 --- a/modules/codec/cc.c +++ b/modules/codec/cc.c @@ -42,6 +42,12 @@ #include "substext.h" #include "cea708.h" +#if 0 +#define Debug(code) code +#else +#define Debug(code) +#endif + /***************************************************************************** * Module descriptor. *****************************************************************************/ @@ -558,6 +564,7 @@ static void Convert( decoder_t *p_dec, vlc_tick_t i_pts, * see CEAv1.2zero.trp tests */ if( i_status & (EIA608_STATUS_DISPLAY | EIA608_STATUS_CHANGED) ) { + Debug(printf("\n")); subpicture_t *p_spu = Subtitle( p_dec, p_sys->p_eia608, i_spupts ); if( p_spu ) decoder_QueueSub( p_dec, p_spu ); @@ -763,6 +770,7 @@ static eia608_status_t Eia608ParseTextAttribute( eia608_t *h, uint8_t d2 ) const int i_index = d2 - 0x20; assert( d2 >= 0x20 && d2 <= 0x2f ); + Debug(printf("[TA %d]", i_index)); h->color = pac2_attribs[i_index].i_color; h->font = pac2_attribs[i_index].i_font; Eia608Cursor( h, 1 ); @@ -778,6 +786,7 @@ static eia608_status_t Eia608ParseSingle( eia608_t *h, const uint8_t dx ) static eia608_status_t Eia608ParseDouble( eia608_t *h, uint8_t d2 ) { assert( d2 >= 0x30 && d2 <= 0x3f ); + Debug(printf("\033[0;33m%s\033[0m", d2 + 0x50)); Eia608Write( h, d2 + 0x50 ); /* We use charaters 0x80...0x8f */ return EIA608_STATUS_CHANGED; } @@ -790,6 +799,7 @@ static eia608_status_t Eia608ParseExtended( eia608_t *h, uint8_t d1, uint8_t d2 else d2 += 0x90; /* We use charaters 0xb0-0xcf */ + Debug(printf("[EXT %x->'%c']", d2, d2)); /* The extended characters replace the previous one with a more * advanced one */ Eia608Cursor( h, -1 ); @@ -804,21 +814,26 @@ static eia608_status_t Eia608ParseCommand0x14( eia608_t *h, uint8_t d2 ) switch( d2 ) { case 0x20: /* Resume caption loading */ + Debug(printf("[RCL]")); h->mode = EIA608_MODE_POPUP; break; case 0x21: /* Backspace */ + Debug(printf("[BS]")); Eia608Erase( h ); i_status = EIA608_STATUS_CHANGED; break; case 0x22: /* Reserved */ case 0x23: + Debug(printf("[ALARM %d]", d2 - 0x22)); break; case 0x24: /* Delete to end of row */ + Debug(printf("[DER]")); Eia608EraseToEndOfRow( h ); break; case 0x25: /* Rollup 2 */ case 0x26: /* Rollup 3 */ case 0x27: /* Rollup 4 */ + Debug(printf("[RU%d]", d2 - 0x23)); if( h->mode == EIA608_MODE_POPUP || h->mode == EIA608_MODE_PAINTON ) { Eia608EraseScreen( h, true ); @@ -841,31 +856,39 @@ static eia608_status_t Eia608ParseCommand0x14( eia608_t *h, uint8_t d2 ) } break; case 0x28: /* Flash on */ + Debug(printf("[FON]")); /* TODO */ break; case 0x29: /* Resume direct captionning */ + Debug(printf("[RDC]")); h->mode = EIA608_MODE_PAINTON; break; case 0x2a: /* Text restart */ + Debug(printf("[TR]")); /* TODO */ break; case 0x2b: /* Resume text display */ + Debug(printf("[RTD]")); h->mode = EIA608_MODE_TEXT; break; case 0x2c: /* Erase displayed memory */ + Debug(printf("[EDM]")); Eia608EraseScreen( h, true ); i_status = EIA608_STATUS_CHANGED | EIA608_STATUS_CAPTION_CLEARED; break; case 0x2d: /* Carriage return */ + Debug(printf("[CR]")); Eia608RollUp(h); i_status = EIA608_STATUS_CHANGED; break; case 0x2e: /* Erase non displayed memory */ + Debug(printf("[ENM]")); Eia608EraseScreen( h, false ); break; case 0x2f: /* End of caption (flip screen if not paint on) */ + Debug(printf("[EOC]")); if( h->mode != EIA608_MODE_PAINTON ) h->i_screen = 1 - h->i_screen; h->mode = EIA608_MODE_POPUP; @@ -883,13 +906,10 @@ static bool Eia608ParseCommand0x17( eia608_t *h, uint8_t d2 ) switch( d2 ) { case 0x21: /* Tab offset 1 */ - Eia608Cursor( h, 1 ); - break; case 0x22: /* Tab offset 2 */ - Eia608Cursor( h, 2 ); - break; case 0x23: /* Tab offset 3 */ - Eia608Cursor( h, 3 ); + Debug(printf("[TO%d]", d2 - 0x20)); + Eia608Cursor( h, d2 - 0x20 ); break; } return false; @@ -901,6 +921,7 @@ static bool Eia608ParsePac( eia608_t *h, uint8_t d1, uint8_t d2 ) }; const int i_row_index = ( (d1<<1) & 0x0e) | ( (d2>>5) & 0x01 ); + Debug(printf("[PAC,%d]", i_row_index)); assert( d2 >= 0x40 && d2 <= 0x7f ); if( pi_row[i_row_index] <= 0 ) @@ -954,9 +975,14 @@ static eia608_status_t Eia608ParseData( eia608_t *h, uint8_t d1, uint8_t d2 ) #undef ON if( d1 >= 0x20 ) { + Debug(printf("\033[0;33m%c", d1)); i_status = Eia608ParseSingle( h, d1 ); if( d2 >= 0x20 ) + { + Debug(printf("%c", d2)); i_status |= Eia608ParseSingle( h, d2 ); + } + Debug(printf("\033[0m")); } /* Ignore changes occuring to doublebuffer */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
