|
@@ -38,7 +38,7 @@ |
|
|
/** |
|
|
/** |
|
|
* Size of the internal FIFO buffers as a number of audio packets |
|
|
* Size of the internal FIFO buffers as a number of audio packets |
|
|
*/ |
|
|
*/ |
|
|
#define FIFO_PACKETS_NUM 16 |
|
|
|
|
|
|
|
|
#define FIFO_PACKETS_NUM 4 |
|
|
|
|
|
|
|
|
typedef struct JackData { |
|
|
typedef struct JackData { |
|
|
AVClass *class; |
|
|
AVClass *class; |
|
@@ -196,7 +196,7 @@ static int start_jack(AVFormatContext *context) |
|
|
self->filled_pkts = av_fifo_alloc_array(FIFO_PACKETS_NUM, sizeof(AVPacket)); |
|
|
self->filled_pkts = av_fifo_alloc_array(FIFO_PACKETS_NUM, sizeof(AVPacket)); |
|
|
/* New packets FIFO with one extra packet for safety against underruns */ |
|
|
/* New packets FIFO with one extra packet for safety against underruns */ |
|
|
self->new_pkts = av_fifo_alloc_array((FIFO_PACKETS_NUM + 1), sizeof(AVPacket)); |
|
|
self->new_pkts = av_fifo_alloc_array((FIFO_PACKETS_NUM + 1), sizeof(AVPacket)); |
|
|
if (!self->new_pkts) { |
|
|
|
|
|
|
|
|
if (!self->new_pkts || !self->filled_pkts) { |
|
|
jack_client_close(self->client); |
|
|
jack_client_close(self->client); |
|
|
return AVERROR(ENOMEM); |
|
|
return AVERROR(ENOMEM); |
|
|
} |
|
|
} |
|
@@ -303,12 +303,12 @@ static int audio_read_packet(AVFormatContext *context, AVPacket *pkt) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (self->pkt_xrun) { |
|
|
if (self->pkt_xrun) { |
|
|
av_log(context, AV_LOG_WARNING, "Audio packet xrun\n"); |
|
|
|
|
|
|
|
|
av_log(context, AV_LOG_WARNING, "Audio sink packet xrun\n"); |
|
|
self->pkt_xrun = 0; |
|
|
self->pkt_xrun = 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (self->jack_xrun) { |
|
|
if (self->jack_xrun) { |
|
|
av_log(context, AV_LOG_WARNING, "JACK xrun\n"); |
|
|
|
|
|
|
|
|
av_log(context, AV_LOG_WARNING, "JACK input xrun\n"); |
|
|
self->jack_xrun = 0; |
|
|
self->jack_xrun = 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|