@@ -6,12 +6,13 @@ use ffmpeg_next::format::{input_with_dictionary, Pixel};
6
6
use ffmpeg_next:: log:: Level ;
7
7
use ffmpeg_next:: software:: converter;
8
8
use log:: { debug, error, info, warn} ;
9
+ use parking_lot:: Mutex ;
9
10
use pyo3:: exceptions:: PyBrokenPipeError ;
10
11
use pyo3:: prelude:: * ;
11
12
use pyo3:: types:: PyBytes ;
12
13
use std:: collections:: HashMap ;
13
14
use std:: path:: Path ;
14
- use std:: sync:: { Arc , Mutex } ;
15
+ use std:: sync:: Arc ;
15
16
use std:: thread:: { spawn, JoinHandle } ;
16
17
use std:: time:: SystemTime ;
17
18
@@ -123,10 +124,7 @@ pub struct FFMpegSource {
123
124
impl Drop for FFMpegSource {
124
125
fn drop ( & mut self ) {
125
126
{
126
- let mut exit_signal = self
127
- . exit_signal
128
- . lock ( )
129
- . expect ( "Exit mutex must be always locked without problems" ) ;
127
+ let mut exit_signal = self . exit_signal . lock ( ) ;
130
128
* exit_signal = true ;
131
129
}
132
130
let t = self . thread . take ( ) ;
@@ -145,10 +143,7 @@ fn handle(
145
143
) {
146
144
let mut queue_full_skipped_count = 0 ;
147
145
ffmpeg:: init ( ) . expect ( "FFmpeg initialization must be successful" ) ;
148
- let ll = log_level
149
- . lock ( )
150
- . expect ( "Log level mutex must always be available" )
151
- . take ( ) ;
146
+ let ll = log_level. lock ( ) . take ( ) ;
152
147
153
148
if let Some ( l) = ll {
154
149
info ! ( "Setting log level to {:?}" , l) ;
@@ -206,13 +201,10 @@ fn handle(
206
201
207
202
let mut skip_until_first_key_frame = true ;
208
203
for ( stream, packet) in ictx. packets ( ) {
209
- if * signal. lock ( ) . expect ( "Mutex is poisoned. Critical error." ) {
204
+ if * signal. lock ( ) {
210
205
break ;
211
206
}
212
- let ll = log_level
213
- . lock ( )
214
- . expect ( "Log level mutex must always be available" )
215
- . take ( ) ;
207
+ let ll = log_level. lock ( ) . take ( ) ;
216
208
217
209
if let Some ( l) = ll {
218
210
info ! ( "Setting log level to {:?}" , l) ;
@@ -416,11 +408,7 @@ impl FFMpegSource {
416
408
417
409
#[ setter]
418
410
pub fn log_level ( & self , ffmpeg_log_level : FFmpegLogLevel ) {
419
- let mut ll = self
420
- . log_level
421
- . lock ( )
422
- . expect ( "Log Level mutex must be available" ) ;
423
-
411
+ let mut ll = self . log_level . lock ( ) ;
424
412
* ll = Some ( assign_log_level ( ffmpeg_log_level) ) ;
425
413
}
426
414
}
0 commit comments