mirror of
https://github.com/CCExtractor/ccextractor.git
synced 2024-12-25 04:11:38 +00:00
In ref. to issue 699. 20 ms timing mis-match.
modified: src/lib_ccx/general_loop.c modified: src/lib_ccx/telxcc.c
This commit is contained in:
parent
ce9416e943
commit
d2bea3802e
@ -1102,7 +1102,7 @@ int rcwt_loop(struct lib_ccx_ctx *ctx)
|
||||
int caps = 0;
|
||||
LLONG result;
|
||||
struct encoder_ctx *enc_ctx = update_encoder_list(ctx);
|
||||
|
||||
struct Teletext *telctx;
|
||||
// As BUFSIZE is a macro this is just a reminder
|
||||
if (BUFSIZE < (3*0xFFFF + 10))
|
||||
fatal (CCX_COMMON_EXIT_BUG_BUG, "BUFSIZE too small for RCWT caption block.\n");
|
||||
@ -1143,6 +1143,7 @@ int rcwt_loop(struct lib_ccx_ctx *ctx)
|
||||
dec_ctx->private_data = telxcc_init();
|
||||
}
|
||||
dec_sub = &dec_ctx->dec_sub;
|
||||
telctx =dec_ctx->private_data;
|
||||
|
||||
/* Set minimum and current pts since rcwt has correct time */
|
||||
dec_ctx->timing->min_pts = 0;
|
||||
@ -1155,9 +1156,10 @@ int rcwt_loop(struct lib_ccx_ctx *ctx)
|
||||
{
|
||||
result = buffered_read(ctx->demux_ctx, buf, TELETEXT_CHUNK_LEN);
|
||||
ctx->demux_ctx->past += result;
|
||||
if (result != TELETEXT_CHUNK_LEN)
|
||||
if (result != TELETEXT_CHUNK_LEN){
|
||||
telxcc_dump_prev_page(telctx,dec_sub);
|
||||
break;
|
||||
|
||||
}
|
||||
tlt_read_rcwt(dec_ctx->private_data, buf, dec_sub);
|
||||
if(dec_sub->got_output == CCX_TRUE)
|
||||
{
|
||||
|
@ -1002,18 +1002,19 @@ void process_telx_packet(struct TeletextCtx *ctx, data_unit_t data_unit_id, tele
|
||||
ctx->transmission_mode = (transmission_mode_t) (unham_8_4(packet->data[7]) & 0x01);
|
||||
|
||||
// FIXME: Well, this is not ETS 300 706 kosher, however we are interested in DATA_UNIT_EBU_TELETEXT_SUBTITLE only
|
||||
if ((ctx->transmission_mode == TRANSMISSION_MODE_PARALLEL) && (data_unit_id != DATA_UNIT_EBU_TELETEXT_SUBTITLE)) return;
|
||||
if ((ctx->transmission_mode == TRANSMISSION_MODE_PARALLEL) && (data_unit_id != DATA_UNIT_EBU_TELETEXT_SUBTITLE)/* && (ctx->page_buffer.tainted == NO)*/) return;
|
||||
|
||||
if ((ctx->receiving_data == YES) && (
|
||||
((ctx->transmission_mode == TRANSMISSION_MODE_SERIAL) && (PAGE(page_number) != PAGE(tlt_config.page))) ||
|
||||
((ctx->transmission_mode == TRANSMISSION_MODE_PARALLEL) && (PAGE(page_number) != PAGE(tlt_config.page)) && (m == MAGAZINE(tlt_config.page)))))
|
||||
{
|
||||
ctx->receiving_data = NO;
|
||||
return;
|
||||
if(ctx->page_buffer.tainted == NO)
|
||||
return;
|
||||
}
|
||||
|
||||
// Page transmission is terminated, however now we are waiting for our new page
|
||||
if (page_number != tlt_config.page)
|
||||
if (page_number != tlt_config.page && ctx->page_buffer.tainted == NO)
|
||||
return;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user