|
|
|
@ -73,6 +73,7 @@ typedef struct FifoContext { |
|
|
|
|
int restart_with_keyframe; |
|
|
|
|
|
|
|
|
|
pthread_mutex_t overflow_flag_lock; |
|
|
|
|
int overflow_flag_lock_initialized; |
|
|
|
|
/* Value > 0 signals queue overflow */ |
|
|
|
|
volatile uint8_t overflow_flag; |
|
|
|
|
|
|
|
|
@ -515,6 +516,7 @@ static int fifo_init(AVFormatContext *avf) |
|
|
|
|
ret = pthread_mutex_init(&fifo->overflow_flag_lock, NULL); |
|
|
|
|
if (ret < 0) |
|
|
|
|
return AVERROR(ret); |
|
|
|
|
fifo->overflow_flag_lock_initialized = 1; |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
@ -601,7 +603,8 @@ static void fifo_deinit(AVFormatContext *avf) |
|
|
|
|
av_dict_free(&fifo->format_options); |
|
|
|
|
avformat_free_context(fifo->avf); |
|
|
|
|
av_thread_message_queue_free(&fifo->queue); |
|
|
|
|
pthread_mutex_destroy(&fifo->overflow_flag_lock); |
|
|
|
|
if (fifo->overflow_flag_lock_initialized) |
|
|
|
|
pthread_mutex_destroy(&fifo->overflow_flag_lock); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define OFFSET(x) offsetof(FifoContext, x) |
|
|
|
|