|
|
|
@ -520,14 +520,12 @@ static void *circular_buffer_task_tx( void *_URLContext) |
|
|
|
|
{ |
|
|
|
|
URLContext *h = _URLContext; |
|
|
|
|
UDPContext *s = h->priv_data; |
|
|
|
|
int old_cancelstate; |
|
|
|
|
int64_t target_timestamp = av_gettime_relative(); |
|
|
|
|
int64_t start_timestamp = av_gettime_relative(); |
|
|
|
|
int64_t sent_bits = 0; |
|
|
|
|
int64_t burst_interval = s->bitrate ? (s->burst_bits * 1000000 / s->bitrate) : 0; |
|
|
|
|
int64_t max_delay = s->bitrate ? ((int64_t)h->max_packet_size * 8 * 1000000 / s->bitrate + 1) : 0; |
|
|
|
|
|
|
|
|
|
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &old_cancelstate); |
|
|
|
|
pthread_mutex_lock(&s->mutex); |
|
|
|
|
|
|
|
|
|
if (ff_socket_nonblock(s->udp_fd, 0) < 0) { |
|
|
|
@ -562,7 +560,6 @@ static void *circular_buffer_task_tx( void *_URLContext) |
|
|
|
|
av_fifo_generic_read(s->fifo, s->tmp, len, NULL); |
|
|
|
|
|
|
|
|
|
pthread_mutex_unlock(&s->mutex); |
|
|
|
|
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &old_cancelstate); |
|
|
|
|
|
|
|
|
|
if (s->bitrate) { |
|
|
|
|
timestamp = av_gettime_relative(); |
|
|
|
@ -608,7 +605,6 @@ static void *circular_buffer_task_tx( void *_URLContext) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &old_cancelstate); |
|
|
|
|
pthread_mutex_lock(&s->mutex); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|