Skip to content

Commit a9413a2

Browse files
authored
fix(dvb): Enable OCR for all DVB subtitle streams, not just first
2 parents a2eb03c + a71687e commit a9413a2

File tree

10 files changed

+6
-15
lines changed

10 files changed

+6
-15
lines changed

src/lib_ccx/ccx_demuxer.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,6 @@ struct ccx_demuxer *init_demuxer(void *parent, struct demuxer_cfg *cfg)
348348
{
349349
ctx->pinfo[i].got_important_streams_min_pts[j] = UINT64_MAX;
350350
}
351-
ctx->pinfo[i].initialized_ocr = 0;
352351
ctx->pinfo[i].version = 0xFF; // Not real in a real stream since it's 5 bits. FF => Not initialized
353352
}
354353

src/lib_ccx/ccx_demuxer.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ struct program_info
3535
{
3636
int pid;
3737
int program_number;
38-
int initialized_ocr; // Avoid initializing the OCR more than once
3938
uint8_t analysed_PMT_once : 1;
4039
uint8_t version;
4140
uint8_t saved_section[1021];

src/lib_ccx/dvb_subtitle_decoder.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ static void delete_regions(DVBSubContext *ctx)
418418
* @return DVB context kept as void* for abstraction
419419
*
420420
*/
421-
void *dvbsub_init_decoder(struct dvb_config *cfg, int initialized_ocr)
421+
void *dvbsub_init_decoder(struct dvb_config *cfg)
422422
{
423423
int i, r, g, b, a = 0;
424424
DVBSubContext *ctx = (DVBSubContext *)malloc(sizeof(DVBSubContext));
@@ -442,8 +442,7 @@ void *dvbsub_init_decoder(struct dvb_config *cfg, int initialized_ocr)
442442
}
443443

444444
#ifdef ENABLE_OCR
445-
if (!initialized_ocr)
446-
ctx->ocr_ctx = init_ocr(ctx->lang_index);
445+
ctx->ocr_ctx = init_ocr(ctx->lang_index);
447446
#endif
448447
ctx->version = -1;
449448

src/lib_ccx/dvb_subtitle_decoder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ extern "C"
4242
* @return DVB context kept as void* for abstraction
4343
*
4444
*/
45-
void *dvbsub_init_decoder(struct dvb_config *cfg, int initialized_ocr);
45+
void *dvbsub_init_decoder(struct dvb_config *cfg);
4646

4747
int dvbsub_close_decoder(void **dvb_ctx);
4848

src/lib_ccx/matroska.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,7 @@ void parse_private_codec_data(struct matroska_ctx *mkv_ctx, char *codec_id_strin
11731173
memset((void *)&cnf, 0, sizeof(struct dvb_config));
11741174

11751175
parse_dvb_description(&cnf, codec_data, 8);
1176-
dec_ctx->private_data = dvbsub_init_decoder(&cnf, 0);
1176+
dec_ctx->private_data = dvbsub_init_decoder(&cnf);
11771177

11781178
free(codec_data);
11791179
}

src/lib_ccx/ts_info.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ static void *init_private_data(enum ccx_code_type codec)
173173
case CCX_CODEC_TELETEXT:
174174
return telxcc_init();
175175
case CCX_CODEC_DVB:
176-
return dvbsub_init_decoder(NULL, 0);
176+
return dvbsub_init_decoder(NULL);
177177
default:
178178
return NULL;
179179
}

src/lib_ccx/ts_tables.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -399,9 +399,7 @@ int parse_PMT(struct ccx_demuxer *ctx, unsigned char *buf, int len, struct progr
399399
ret = parse_dvb_description(&cnf, es_info, desc_len);
400400
if (ret < 0)
401401
break;
402-
ptr = dvbsub_init_decoder(&cnf, pinfo->initialized_ocr);
403-
if (!pinfo->initialized_ocr)
404-
pinfo->initialized_ocr = 1;
402+
ptr = dvbsub_init_decoder(&cnf);
405403
if (ptr == NULL)
406404
break;
407405
update_capinfo(ctx, elementary_PID, stream_type, CCX_CODEC_DVB, program_number, ptr);

src/rust/src/common.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1070,7 +1070,6 @@ impl CType<program_info> for ProgramInfo {
10701070
program_info {
10711071
pid: self.pid,
10721072
program_number: self.program_number,
1073-
initialized_ocr: self.initialized_ocr as c_int,
10741073
_bitfield_align_1: [],
10751074
_bitfield_1: bf1,
10761075
version: self.version,

src/rust/src/ctorust.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,6 @@ impl FromCType<program_info> for ProgramInfo {
540540
Some(ProgramInfo {
541541
pid: info.pid,
542542
program_number: info.program_number,
543-
initialized_ocr: info.initialized_ocr != 0,
544543
analysed_pmt_once: info._bitfield_1.get_bit(0) as u8,
545544
version: info.version,
546545
saved_section: info.saved_section,

src/rust/src/demuxer/common_types.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ pub struct FileReport {
5050
pub struct ProgramInfo {
5151
pub pid: i32,
5252
pub program_number: i32,
53-
pub initialized_ocr: bool, // Avoid initializing the OCR more than once
5453
pub analysed_pmt_once: u8, // 1-bit field
5554
pub version: u8,
5655
pub saved_section: [u8; SAVED_SECTIONS_PROGRAMINFO],
@@ -301,7 +300,6 @@ impl Default for ProgramInfo {
301300
ProgramInfo {
302301
pid: -1,
303302
program_number: 0,
304-
initialized_ocr: false,
305303
analysed_pmt_once: 0,
306304
version: 0,
307305
saved_section: [0; SAVED_SECTIONS_PROGRAMINFO],

0 commit comments

Comments
 (0)