|
|
|
@ -374,8 +374,10 @@ static void handle_pac( CCaptionSubContext *ctx, uint8_t hi, uint8_t lo ) |
|
|
|
|
char *row; |
|
|
|
|
int indent,i,ret; |
|
|
|
|
|
|
|
|
|
if( row_map[index] <= 0 ) |
|
|
|
|
if( row_map[index] <= 0 ) { |
|
|
|
|
av_log(ctx, AV_LOG_DEBUG,"Invalid pac index encountered\n"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lo &= 0x1f; |
|
|
|
|
|
|
|
|
@ -489,18 +491,21 @@ static int process_cc608(CCaptionSubContext *ctx, int64_t pts, uint8_t hi, uint8 |
|
|
|
|
ret = handle_edm(ctx, pts); |
|
|
|
|
} else if ( COR3(hi, 0x14, 0x15, 0x1C) && lo == 0x2D ) { |
|
|
|
|
/* carriage return */ |
|
|
|
|
av_dlog(ctx, "carriage return\n"); |
|
|
|
|
reap_screen(ctx, pts); |
|
|
|
|
roll_up(ctx); |
|
|
|
|
ctx->screen_changed = 1; |
|
|
|
|
ctx->cursor_column = 0; |
|
|
|
|
} else if ( COR3(hi, 0x14, 0x15, 0x1C) && lo == 0x2F ) { |
|
|
|
|
/* end of caption */ |
|
|
|
|
av_dlog(ctx, "handle_eoc\n"); |
|
|
|
|
ret = handle_eoc(ctx, pts); |
|
|
|
|
} else if (hi>=0x20) { |
|
|
|
|
/* Standard characters (always in pairs) */ |
|
|
|
|
handle_char(ctx, hi, lo, pts); |
|
|
|
|
} else { |
|
|
|
|
/* Ignoring all other non data code */ |
|
|
|
|
av_dlog(ctx, "Unknown command 0x%hhx 0x%hhx\n", hi, lo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* set prev command */ |
|
|
|
|