29
29
#define log (fmt , ...) ccx_common_logging.log_ftn("GXF:%d: " fmt, __LINE__, ##__VA_ARGS__)
30
30
31
31
#undef CCX_GXF_ENABLE_AD_VBI
32
+
33
+ #ifndef DISABLE_RUST
34
+ int ccxr_parse_packet_header (struct ccx_demuxer * ctx , struct GXFPktType * type , int * length );
35
+ int ccxr_parse_material_sec (struct ccx_demuxer * demux , int len );
36
+ int ccxr_parse_mpeg525_track_desc (struct ccx_demuxer * demux , int len );
37
+ int ccxr_parse_ad_track_desc (struct ccx_demuxer * demux , int len );
38
+ void ccxr_set_track_frame_rate (struct ccx_gxf_video_track * vid_track , int8_t val );
39
+ int ccxr_parse_track_sec (struct ccx_demuxer * demux , int len , struct demuxer_data * data );
40
+ int ccxr_parse_ad_cdp (const unsigned char * cdp , size_t len , struct demuxer_data * data );
41
+ int ccxr_parse_ad_pyld (struct ccx_demuxer * demux , int len , struct demuxer_data * data );
42
+ int ccxr_parse_ad_vbi (struct ccx_demuxer * demux , int len , struct demuxer_data * data );
43
+ int ccxr_parse_ad_field (struct ccx_demuxer * demux , int len , struct demuxer_data * data );
44
+ void ccxr_set_data_timebase (int32_t vid_format , struct demuxer_data * data );
45
+ int ccxr_parse_mpeg_packet (struct ccx_demuxer * demux , int len , struct demuxer_data * data );
46
+ int ccxr_parse_ad_packet (struct ccx_demuxer * demux , int len , struct demuxer_data * data );
47
+ void ccxr_set_mpeg_frame_desc (struct ccx_gxf_video_track * vid_track , unsigned char mpeg_frame_desc_flag );
48
+ int ccxr_parse_media (struct ccx_demuxer * demux , int len , struct demuxer_data * data );
49
+ int ccxr_parse_flt (struct ccx_demuxer * ctx , int len );
50
+ int ccxr_parse_umf (struct ccx_demuxer * ctx , int len );
51
+ int ccxr_parse_map (struct ccx_demuxer * ctx , int len , struct demuxer_data * data );
52
+ int ccxr_read_packet (struct ccx_demuxer * ctx , struct demuxer_data * data );
53
+ int ccxr_gxf_probe (const unsigned char * buf , int len );
54
+ #endif
55
+
56
+
57
+
32
58
typedef enum
33
59
{
34
60
PKT_MAP = 0xbc ,
@@ -337,6 +363,9 @@ struct ccx_gxf
337
363
*/
338
364
static int parse_packet_header (struct ccx_demuxer * ctx , GXFPktType * type , int * length )
339
365
{
366
+ #ifndef DISABLE_RUST
367
+ return ccxr_parse_packet_header (ctx , type , length );
368
+ #else
340
369
unsigned char pkt_header [16 ];
341
370
int index = 0 ;
342
371
long long result ;
@@ -384,10 +413,14 @@ static int parse_packet_header(struct ccx_demuxer *ctx, GXFPktType *type, int *l
384
413
index ++ ;
385
414
386
415
return CCX_OK ;
416
+ #endif
387
417
}
388
418
389
419
static int parse_material_sec (struct ccx_demuxer * demux , int len )
390
420
{
421
+ #ifndef DISABLE_RUST
422
+ return ccxr_parse_material_sec (demux , len );
423
+ #else
391
424
struct ccx_gxf * ctx = demux -> private_data ;
392
425
int result ;
393
426
int ret = CCX_OK ;
@@ -452,10 +485,14 @@ static int parse_material_sec(struct ccx_demuxer *demux, int len)
452
485
if (result != len )
453
486
ret = CCX_EOF ;
454
487
return ret ;
488
+ #endif
455
489
}
456
490
457
491
static void set_track_frame_rate (struct ccx_gxf_video_track * vid_track , int8_t val )
458
492
{
493
+ #ifndef DISABLE_RUST
494
+ ccxr_set_track_frame_rate (vid_track , val );
495
+ #else
459
496
switch (val )
460
497
{
461
498
case 1 :
@@ -498,9 +535,13 @@ static void set_track_frame_rate(struct ccx_gxf_video_track *vid_track, int8_t v
498
535
/* Do nothing in case of no frame rate */
499
536
break ;
500
537
}
538
+ #endif
501
539
}
502
540
static int parse_mpeg525_track_desc (struct ccx_demuxer * demux , int len )
503
541
{
542
+ #ifndef DISABLE_RUST
543
+ return ccxr_parse_mpeg525_track_desc (demux , len );
544
+ #else
504
545
struct ccx_gxf * ctx = demux -> private_data ;
505
546
struct ccx_gxf_video_track * vid_track = ctx -> vid_track ;
506
547
int result ;
@@ -566,10 +607,14 @@ static int parse_mpeg525_track_desc(struct ccx_demuxer *demux, int len)
566
607
if (result != len )
567
608
ret = CCX_EOF ;
568
609
return ret ;
610
+ #endif
569
611
}
570
612
571
613
static int parse_ad_track_desc (struct ccx_demuxer * demux , int len )
572
614
{
615
+ #ifndef DISABLE_RUST
616
+ return ccxr_parse_ad_track_desc (demux , len );
617
+ #else
573
618
struct ccx_gxf * ctx = demux -> private_data ;
574
619
struct ccx_gxf_ancillary_data_track * ad_track = ctx -> ad_track ;
575
620
int result ;
@@ -658,10 +703,14 @@ static int parse_ad_track_desc(struct ccx_demuxer *demux, int len)
658
703
if (result != len )
659
704
ret = CCX_EOF ;
660
705
return ret ;
706
+ #endif
661
707
}
662
708
663
709
static int parse_track_sec (struct ccx_demuxer * demux , int len , struct demuxer_data * data )
664
710
{
711
+ #ifndef DISABLE_RUST
712
+ return ccxr_parse_track_sec (demux , len , data );
713
+ #else
665
714
int result ;
666
715
int ret = CCX_OK ;
667
716
struct ccx_gxf * ctx = demux -> private_data ;
@@ -762,6 +811,7 @@ static int parse_track_sec(struct ccx_demuxer *demux, int len, struct demuxer_da
762
811
if (result != len )
763
812
ret = CCX_EOF ;
764
813
return ret ;
814
+ #endif
765
815
}
766
816
767
817
/**
@@ -781,7 +831,9 @@ static int parse_track_sec(struct ccx_demuxer *demux, int len, struct demuxer_da
781
831
782
832
int parse_ad_cdp (unsigned char * cdp , size_t len , struct demuxer_data * data )
783
833
{
784
-
834
+ #ifndef DISABLE_RUST
835
+ return ccxr_parse_ad_cdp (cdp , len , data );
836
+ #else
785
837
int ret = CCX_OK ;
786
838
uint16_t cdp_length ;
787
839
uint16_t cdp_framerate ;
@@ -896,13 +948,17 @@ int parse_ad_cdp(unsigned char *cdp, size_t len, struct demuxer_data *data)
896
948
}
897
949
898
950
return ret ;
951
+ #endif
899
952
}
900
953
901
954
/**
902
955
* parse ancillary data payload
903
956
*/
904
957
static int parse_ad_pyld (struct ccx_demuxer * demux , int len , struct demuxer_data * data )
905
958
{
959
+ #ifndef DISABLE_RUST
960
+ return ccxr_parse_ad_pyld (demux , len , data );
961
+ #else
906
962
int ret = CCX_OK ;
907
963
int result = 0 ;
908
964
#ifndef CCX_GXF_ENABLE_AD_VBI
@@ -975,6 +1031,7 @@ static int parse_ad_pyld(struct ccx_demuxer *demux, int len, struct demuxer_data
975
1031
ret = CCX_EOF ;
976
1032
977
1033
return ret ;
1034
+ #endif
978
1035
}
979
1036
980
1037
/**
@@ -987,6 +1044,9 @@ static int parse_ad_pyld(struct ccx_demuxer *demux, int len, struct demuxer_data
987
1044
*/
988
1045
static int parse_ad_vbi (struct ccx_demuxer * demux , int len , struct demuxer_data * data )
989
1046
{
1047
+ #ifndef DISABLE_RUST
1048
+ return ccxr_parse_ad_vbi (demux , len , data );
1049
+ #else
990
1050
int ret = CCX_OK ;
991
1051
int result = 0 ;
992
1052
@@ -1000,10 +1060,14 @@ static int parse_ad_vbi(struct ccx_demuxer *demux, int len, struct demuxer_data
1000
1060
if (result != len )
1001
1061
ret = CCX_EOF ;
1002
1062
return ret ;
1063
+ #endif
1003
1064
}
1004
1065
1005
1066
static int parse_ad_field (struct ccx_demuxer * demux , int len , struct demuxer_data * data )
1006
1067
{
1068
+ #ifndef DISABLE_RUST
1069
+ return ccxr_parse_ad_field (demux , len , data );
1070
+ #else
1007
1071
int ret = CCX_OK ;
1008
1072
int result = 0 ;
1009
1073
char tag [5 ];
@@ -1131,6 +1195,7 @@ static int parse_ad_field(struct ccx_demuxer *demux, int len, struct demuxer_dat
1131
1195
if (result != len )
1132
1196
ret = CCX_EOF ;
1133
1197
return ret ;
1198
+ #endif
1134
1199
}
1135
1200
1136
1201
/**
@@ -1166,6 +1231,9 @@ static int parse_ad_field(struct ccx_demuxer *demux, int len, struct demuxer_dat
1166
1231
*/
1167
1232
static void set_data_timebase (int32_t vid_format , struct demuxer_data * data )
1168
1233
{
1234
+ #ifndef DISABLE_RUST
1235
+ ccxr_set_data_timebase (vid_format , data );
1236
+ #else
1169
1237
debug ("LOG:Format Video %d\n" , vid_format );
1170
1238
1171
1239
switch (vid_format )
@@ -1218,10 +1286,14 @@ static void set_data_timebase(int32_t vid_format, struct demuxer_data *data)
1218
1286
default :
1219
1287
break ;
1220
1288
}
1289
+ #endif
1221
1290
}
1222
1291
1223
1292
static int parse_mpeg_packet (struct ccx_demuxer * demux , int len , struct demuxer_data * data )
1224
1293
{
1294
+ #ifndef DISABLE_RUST
1295
+ return ccxr_parse_mpeg_packet (demux , len , data );
1296
+ #else
1225
1297
int ret = CCX_OK ;
1226
1298
int result = 0 ;
1227
1299
@@ -1231,6 +1303,7 @@ static int parse_mpeg_packet(struct ccx_demuxer *demux, int len, struct demuxer_
1231
1303
if (result != len )
1232
1304
ret = CCX_EOF ;
1233
1305
return ret ;
1306
+ #endif
1234
1307
}
1235
1308
1236
1309
/**
@@ -1239,6 +1312,9 @@ static int parse_mpeg_packet(struct ccx_demuxer *demux, int len, struct demuxer_
1239
1312
*/
1240
1313
static int parse_ad_packet (struct ccx_demuxer * demux , int len , struct demuxer_data * data )
1241
1314
{
1315
+ #ifndef DISABLE_RUST
1316
+ return ccxr_parse_ad_packet (demux , len , data );
1317
+ #else
1242
1318
int ret = CCX_OK ;
1243
1319
int result = 0 ;
1244
1320
int i ;
@@ -1334,6 +1410,7 @@ static int parse_ad_packet(struct ccx_demuxer *demux, int len, struct demuxer_da
1334
1410
if (result != len )
1335
1411
ret = CCX_EOF ;
1336
1412
return ret ;
1413
+ #endif
1337
1414
}
1338
1415
1339
1416
/**
@@ -1357,11 +1434,18 @@ static int parse_ad_packet(struct ccx_demuxer *demux, int len, struct demuxer_da
1357
1434
*/
1358
1435
static void set_mpeg_frame_desc (struct ccx_gxf_video_track * vid_track , unsigned char mpeg_frame_desc_flag )
1359
1436
{
1437
+ #ifndef DISABLE_RUST
1438
+ ccxr_set_mpeg_frame_desc (vid_track , mpeg_frame_desc_flag );
1439
+ #else
1360
1440
vid_track -> p_code = mpeg_frame_desc_flag & 0x03 ;
1361
1441
vid_track -> p_struct = (mpeg_frame_desc_flag >> 2 ) & 0x03 ;
1442
+ #endif
1362
1443
}
1363
1444
static int parse_media (struct ccx_demuxer * demux , int len , struct demuxer_data * data )
1364
1445
{
1446
+ #ifndef DISABLE_RUST
1447
+ return ccxr_parse_media (demux , len , data );
1448
+ #else
1365
1449
int ret = CCX_OK ;
1366
1450
int result = 0 ;
1367
1451
GXFTrackType media_type ;
@@ -1515,13 +1599,17 @@ static int parse_media(struct ccx_demuxer *demux, int len, struct demuxer_data *
1515
1599
if (result != len )
1516
1600
ret = CCX_EOF ;
1517
1601
return ret ;
1602
+ #endif
1518
1603
}
1519
1604
1520
1605
/**
1521
1606
* Dummy function that ignore field locator table packet
1522
1607
*/
1523
1608
static int parse_flt (struct ccx_demuxer * ctx , int len )
1524
1609
{
1610
+ #ifndef DISABLE_RUST
1611
+ return ccxr_parse_flt (ctx , len );
1612
+ #else
1525
1613
int ret = CCX_OK ;
1526
1614
int result = 0 ;
1527
1615
@@ -1530,13 +1618,17 @@ static int parse_flt(struct ccx_demuxer *ctx, int len)
1530
1618
if (result != len )
1531
1619
ret = CCX_EOF ;
1532
1620
return ret ;
1621
+ #endif
1533
1622
}
1534
1623
1535
1624
/**
1536
1625
* Dummy function that ignore unified material format packet
1537
1626
*/
1538
1627
static int parse_umf (struct ccx_demuxer * ctx , int len )
1539
1628
{
1629
+ #ifndef DISABLE_RUST
1630
+ return ccxr_parse_umf (ctx , len );
1631
+ #else
1540
1632
int ret = CCX_OK ;
1541
1633
int result = 0 ;
1542
1634
@@ -1545,6 +1637,7 @@ static int parse_umf(struct ccx_demuxer *ctx, int len)
1545
1637
if (result != len )
1546
1638
ret = CCX_EOF ;
1547
1639
return ret ;
1640
+ #endif
1548
1641
}
1549
1642
/**
1550
1643
* Its this function duty to use len length buffer from demuxer
@@ -1559,6 +1652,9 @@ static int parse_umf(struct ccx_demuxer *ctx, int len)
1559
1652
*/
1560
1653
static int parse_map (struct ccx_demuxer * ctx , int len , struct demuxer_data * data )
1561
1654
{
1655
+ #ifndef DISABLE_RUST
1656
+ return ccxr_parse_map (ctx , len , data );
1657
+ #else
1562
1658
int result = 0 ;
1563
1659
int material_sec_len = 0 ;
1564
1660
int track_sec_len = 0 ;
@@ -1589,6 +1685,7 @@ static int parse_map(struct ccx_demuxer *ctx, int len, struct demuxer_data *data
1589
1685
if (result != len )
1590
1686
ret = CCX_EOF ;
1591
1687
return ret ;
1688
+ #endif
1592
1689
}
1593
1690
1594
1691
/**
@@ -1603,6 +1700,9 @@ static int parse_map(struct ccx_demuxer *ctx, int len, struct demuxer_data *data
1603
1700
1604
1701
static int read_packet (struct ccx_demuxer * ctx , struct demuxer_data * data )
1605
1702
{
1703
+ #ifndef DISABLE_RUST
1704
+ return ccxr_read_packet (ctx , data );
1705
+ #else
1606
1706
int len = 0 ;
1607
1707
int result = 0 ;
1608
1708
int ret ;
@@ -1639,6 +1739,7 @@ static int read_packet(struct ccx_demuxer *ctx, struct demuxer_data *data)
1639
1739
}
1640
1740
1641
1741
return ret ;
1742
+ #endif
1642
1743
}
1643
1744
1644
1745
/**
@@ -1653,13 +1754,17 @@ static int read_packet(struct ccx_demuxer *ctx, struct demuxer_data *data)
1653
1754
*/
1654
1755
int ccx_gxf_probe (unsigned char * buf , int len )
1655
1756
{
1757
+ #ifndef DISABLE_RUST
1758
+ return ccxr_gxf_probe (buf , len );
1759
+ #else
1656
1760
static const uint8_t startcode [] = {0 , 0 , 0 , 0 , 1 , 0xbc };
1657
1761
if (len < sizeof (startcode ))
1658
1762
return CCX_FALSE ;
1659
1763
1660
1764
if (!memcmp (buf , startcode , sizeof (startcode )))
1661
1765
return CCX_TRUE ;
1662
1766
return CCX_FALSE ;
1767
+ #endif
1663
1768
}
1664
1769
1665
1770
int ccx_gxf_get_more_data (struct lib_ccx_ctx * ctx , struct demuxer_data * * ppdata )
0 commit comments