|
|
@ -3356,6 +3356,7 @@ static int check_keyboard_interaction(int64_t cur_time) |
|
|
|
static void *input_thread(void *arg) |
|
|
|
static void *input_thread(void *arg) |
|
|
|
{ |
|
|
|
{ |
|
|
|
InputFile *f = arg; |
|
|
|
InputFile *f = arg; |
|
|
|
|
|
|
|
unsigned flags = f->non_blocking ? AV_THREAD_MESSAGE_NONBLOCK : 0; |
|
|
|
int ret = 0; |
|
|
|
int ret = 0; |
|
|
|
|
|
|
|
|
|
|
|
while (1) { |
|
|
|
while (1) { |
|
|
@ -3371,7 +3372,15 @@ static void *input_thread(void *arg) |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
av_dup_packet(&pkt); |
|
|
|
av_dup_packet(&pkt); |
|
|
|
ret = av_thread_message_queue_send(f->in_thread_queue, &pkt, 0); |
|
|
|
ret = av_thread_message_queue_send(f->in_thread_queue, &pkt, flags); |
|
|
|
|
|
|
|
if (flags && ret == AVERROR(EAGAIN)) { |
|
|
|
|
|
|
|
flags = 0; |
|
|
|
|
|
|
|
ret = av_thread_message_queue_send(f->in_thread_queue, &pkt, flags); |
|
|
|
|
|
|
|
av_log(f->ctx, AV_LOG_WARNING, |
|
|
|
|
|
|
|
"Thread message queue blocking; consider raising the " |
|
|
|
|
|
|
|
"thread_queue_size option (current value: %d)\n", |
|
|
|
|
|
|
|
f->thread_queue_size); |
|
|
|
|
|
|
|
} |
|
|
|
if (ret < 0) { |
|
|
|
if (ret < 0) { |
|
|
|
if (ret != AVERROR_EOF) |
|
|
|
if (ret != AVERROR_EOF) |
|
|
|
av_log(f->ctx, AV_LOG_ERROR, |
|
|
|
av_log(f->ctx, AV_LOG_ERROR, |
|
|
|