@@ -23,7 +23,7 @@ use super::hardsubx_color_type;
23
23
use super :: hardsubx_ocr_mode;
24
24
use super :: utility:: * ;
25
25
use super :: HardsubxContext ;
26
- use super :: CCX_ENC_UTF_8 ;
26
+ use crate :: ccx_encoding_type :: * ;
27
27
28
28
use std:: cmp;
29
29
@@ -313,13 +313,16 @@ pub unsafe fn _process_frame_tickertext(
313
313
subtitle_text
314
314
}
315
315
316
+ /// # Safety
317
+ /// dereferences a raw pointer
318
+ /// calls potentially unsafe C functions
316
319
pub unsafe fn hardsubx_process_frames_linear ( ctx : & mut HardsubxContext , enc_ctx : * mut encoder_ctx ) {
317
320
let mut prev_sub_encoded: bool = true ;
318
321
let mut got_frame = 0 ;
319
322
let mut dist = 0 ;
320
323
let mut cur_sec = 0 ;
321
- let mut total_sec = 0 ;
322
- let mut progress = 0 ;
324
+ let mut total_sec;
325
+ let mut progress;
323
326
324
327
let mut frame_number = 0 ;
325
328
@@ -328,7 +331,7 @@ pub unsafe fn hardsubx_process_frames_linear(ctx: &mut HardsubxContext, enc_ctx:
328
331
329
332
let mut prev_packet_pts: i64 = 0 ;
330
333
331
- let mut subtitle_text: String = String :: new ( ) ;
334
+ let mut subtitle_text = String :: new ( ) ;
332
335
let mut prev_subtitle_text: String = String :: new ( ) ;
333
336
334
337
while av_read_frame ( ctx. format_ctx , & mut ctx. packet as * mut AVPacket ) >= 0 {
@@ -418,11 +421,9 @@ pub unsafe fn hardsubx_process_frames_linear(ctx: &mut HardsubxContext, enc_ctx:
418
421
419
422
if !subtitle_text. is_empty ( ) {
420
423
let double_enter = subtitle_text. find ( "\n \n " ) ;
421
- match double_enter {
422
- Some ( T ) => {
423
- subtitle_text = subtitle_text[ 0 ..T ] . to_string ( ) ;
424
- }
425
- _ => { }
424
+
425
+ if let Some ( T ) = double_enter {
426
+ subtitle_text = subtitle_text[ 0 ..T ] . to_string ( ) ;
426
427
}
427
428
}
428
429
@@ -460,7 +461,7 @@ pub unsafe fn hardsubx_process_frames_linear(ctx: &mut HardsubxContext, enc_ctx:
460
461
prev_begin_time,
461
462
empty_chr,
462
463
mode_chr,
463
- CCX_ENC_UTF_8 ,
464
+ CCX_ENC_UTF_8 as u32 ,
464
465
) ;
465
466
466
467
encode_sub ( enc_ctx, & mut * ctx. dec_sub ) ;
@@ -469,7 +470,7 @@ pub unsafe fn hardsubx_process_frames_linear(ctx: &mut HardsubxContext, enc_ctx:
469
470
subtitle_text = ffi:: CString :: from_raw ( sub_text_chr)
470
471
. to_string_lossy ( )
471
472
. into_owned ( ) ;
472
- prev_subtitle_text = ffi:: CString :: from_raw ( prev_text_chr)
473
+ ffi:: CString :: from_raw ( prev_text_chr)
473
474
. to_string_lossy ( )
474
475
. into_owned ( ) ;
475
476
ffi:: CString :: from_raw ( empty_chr) ;
@@ -524,21 +525,20 @@ pub unsafe fn hardsubx_process_frames_linear(ctx: &mut HardsubxContext, enc_ctx:
524
525
prev_begin_time,
525
526
empty_chr,
526
527
mode_chr,
527
- CCX_ENC_UTF_8 ,
528
+ CCX_ENC_UTF_8 as u32 ,
528
529
) ;
529
530
530
531
// Deallocation
531
- subtitle_text = ffi:: CString :: from_raw ( sub_text_chr)
532
+ ffi:: CString :: from_raw ( sub_text_chr)
532
533
. to_string_lossy ( )
533
534
. into_owned ( ) ;
534
- prev_subtitle_text = ffi:: CString :: from_raw ( prev_text_chr)
535
+ ffi:: CString :: from_raw ( prev_text_chr)
535
536
. to_string_lossy ( )
536
537
. into_owned ( ) ;
537
538
ffi:: CString :: from_raw ( empty_chr) ;
538
539
ffi:: CString :: from_raw ( mode_chr) ;
539
540
540
541
encode_sub ( enc_ctx, & mut * ctx. dec_sub as * mut cc_subtitle ) ;
541
- prev_sub_encoded = true ;
542
542
}
543
543
544
544
activity_progress (
@@ -548,20 +548,23 @@ pub unsafe fn hardsubx_process_frames_linear(ctx: &mut HardsubxContext, enc_ctx:
548
548
) ;
549
549
}
550
550
551
+
552
+ /// # Safety
553
+ /// dereferences a raw pointer
554
+ /// calls potentially unsafe C functions
551
555
pub unsafe fn hardsubx_process_frames_tickertext (
552
556
ctx : & mut HardsubxContext ,
553
557
_enc_ctx : * mut encoder_ctx ,
554
558
) {
555
559
let mut got_frame: bool = false ;
556
560
557
561
let mut cur_sec: i64 = 0 ;
558
- let mut total_sec: i64 = 0 ;
559
- let mut progress: i64 = 0 ;
562
+ let mut total_sec: i64 ;
563
+ let mut progress: i64 ;
560
564
561
565
let mut frame_number = 0 ;
562
566
563
- let mut ticker_text = String :: new ( ) ;
564
-
567
+ let mut ticker_text;
565
568
while av_read_frame ( ctx. format_ctx , & mut ctx. packet ) >= 0 {
566
569
if ctx. packet . stream_index == ctx. video_stream_id {
567
570
frame_number += 1 ;
0 commit comments