4
4
#include "utility.h"
5
5
#include "limits.h"
6
6
7
+ #ifndef DISABLE_RUST
8
+
9
+ extern int ccxr_isdb_set_global_time (struct lib_cc_decode * dec_ctx , uint64_t timestamp );
10
+ extern void ccxr_delete_isdb_decoder (void * * isdb_ctx );
11
+ extern void * ccxr_init_isdb_decoder (void );
12
+ extern int ccxr_isdb_parse_data_group (void * codec_ctx , const uint8_t * buf , int size , struct cc_subtitle * sub );
13
+ extern int ccxr_isdbsub_decode (struct lib_cc_decode * dec_ctx , const uint8_t * buf , size_t buf_size , struct cc_subtitle * sub );
14
+
15
+ #endif
16
+
7
17
// #define DEBUG
8
18
// #define COMMAND_DEBUG
9
19
@@ -281,6 +291,9 @@ typedef struct
281
291
*/
282
292
void delete_isdb_decoder (void * * isdb_ctx )
283
293
{
294
+ #ifndef DISABLE_RUST
295
+ ccxr_delete_isdb_decoder (isdb_ctx );
296
+ #else
284
297
ISDBSubContext * ctx = * isdb_ctx ;
285
298
struct ISDBText * text = NULL ;
286
299
struct ISDBText * text1 = NULL ;
@@ -298,6 +311,7 @@ void delete_isdb_decoder(void **isdb_ctx)
298
311
free (text );
299
312
}
300
313
freep (isdb_ctx );
314
+ #endif
301
315
}
302
316
303
317
static void init_layout (ISDBSubLayout * ls )
@@ -312,6 +326,9 @@ static void init_layout(ISDBSubLayout *ls)
312
326
313
327
void * init_isdb_decoder (void )
314
328
{
329
+ #ifndef DISABLE_RUST
330
+ return ccxr_init_isdb_decoder ();
331
+ #else
315
332
ISDBSubContext * ctx ;
316
333
317
334
ctx = malloc (sizeof (ISDBSubContext ));
@@ -326,6 +343,7 @@ void *init_isdb_decoder(void)
326
343
ctx -> current_state .rollup_mode = 0 ;
327
344
init_layout (& ctx -> current_state .layout_state );
328
345
return ctx ;
346
+ #endif
329
347
}
330
348
331
349
/**
@@ -1328,6 +1346,9 @@ static int parse_caption_statement_data(ISDBSubContext *ctx, int lang_id, const
1328
1346
*/
1329
1347
int isdb_parse_data_group (void * codec_ctx , const uint8_t * buf , struct cc_subtitle * sub )
1330
1348
{
1349
+ #ifndef DISABLE_RUST
1350
+ return ccxr_isdb_parse_data_group (codec_ctx , buf , 0 , sub );
1351
+ #else
1331
1352
ISDBSubContext * ctx = codec_ctx ;
1332
1353
const uint8_t * buf_pivot = buf ;
1333
1354
int id = (* buf >> 2 );
@@ -1393,10 +1414,14 @@ int isdb_parse_data_group(void *codec_ctx, const uint8_t *buf, struct cc_subtitl
1393
1414
buf += 2 ;
1394
1415
1395
1416
return buf - buf_pivot ;
1417
+ #endif
1396
1418
}
1397
1419
1398
1420
int isdbsub_decode (struct lib_cc_decode * dec_ctx , const uint8_t * buf , size_t buf_size , struct cc_subtitle * sub )
1399
1421
{
1422
+ #ifndef DISABLE_RUST
1423
+ return ccxr_isdbsub_decode (dec_ctx , buf , buf_size , sub );
1424
+ #else
1400
1425
const uint8_t * header_end = NULL ;
1401
1426
int ret = 0 ;
1402
1427
ISDBSubContext * ctx = dec_ctx -> private_data ;
@@ -1421,10 +1446,16 @@ int isdbsub_decode(struct lib_cc_decode *dec_ctx, const uint8_t *buf, size_t buf
1421
1446
return -1 ;
1422
1447
1423
1448
return 1 ;
1449
+ #endif
1424
1450
}
1451
+
1425
1452
int isdb_set_global_time (struct lib_cc_decode * dec_ctx , uint64_t timestamp )
1426
1453
{
1454
+ #ifndef DISABLE_RUST
1455
+ return ccxr_isdb_set_global_time (dec_ctx , timestamp );
1456
+ #else
1427
1457
ISDBSubContext * ctx = dec_ctx -> private_data ;
1428
1458
ctx -> timestamp = timestamp ;
1429
1459
return CCX_OK ;
1460
+ #endif
1430
1461
}
0 commit comments