libavformat: Make protocols pass URLContext as log context where available
Since the libavformat major bump, URLContext contains an AVClass, making it a usable log context. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
@ -195,7 +195,7 @@ static int applehttp_open(URLContext *h, const char *uri, int flags)
|
|||||||
av_strlcpy(s->playlisturl, "http://", sizeof(s->playlisturl));
|
av_strlcpy(s->playlisturl, "http://", sizeof(s->playlisturl));
|
||||||
av_strlcat(s->playlisturl, nested_url, sizeof(s->playlisturl));
|
av_strlcat(s->playlisturl, nested_url, sizeof(s->playlisturl));
|
||||||
} else {
|
} else {
|
||||||
av_log(NULL, AV_LOG_ERROR, "Unsupported url %s\n", uri);
|
av_log(h, AV_LOG_ERROR, "Unsupported url %s\n", uri);
|
||||||
ret = AVERROR(EINVAL);
|
ret = AVERROR(EINVAL);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
@ -218,7 +218,7 @@ static int applehttp_open(URLContext *h, const char *uri, int flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (s->n_segments == 0) {
|
if (s->n_segments == 0) {
|
||||||
av_log(NULL, AV_LOG_WARNING, "Empty playlist\n");
|
av_log(h, AV_LOG_WARNING, "Empty playlist\n");
|
||||||
ret = AVERROR(EIO);
|
ret = AVERROR(EIO);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
@ -258,7 +258,7 @@ retry:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
if (s->cur_seq_no < s->start_seq_no) {
|
if (s->cur_seq_no < s->start_seq_no) {
|
||||||
av_log(NULL, AV_LOG_WARNING,
|
av_log(h, AV_LOG_WARNING,
|
||||||
"skipping %d segments ahead, expired from playlist\n",
|
"skipping %d segments ahead, expired from playlist\n",
|
||||||
s->start_seq_no - s->cur_seq_no);
|
s->start_seq_no - s->cur_seq_no);
|
||||||
s->cur_seq_no = s->start_seq_no;
|
s->cur_seq_no = s->start_seq_no;
|
||||||
@ -274,12 +274,12 @@ retry:
|
|||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
url = s->segments[s->cur_seq_no - s->start_seq_no]->url,
|
url = s->segments[s->cur_seq_no - s->start_seq_no]->url,
|
||||||
av_log(NULL, AV_LOG_DEBUG, "opening %s\n", url);
|
av_log(h, AV_LOG_DEBUG, "opening %s\n", url);
|
||||||
ret = ffurl_open(&s->seg_hd, url, AVIO_FLAG_READ);
|
ret = ffurl_open(&s->seg_hd, url, AVIO_FLAG_READ);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
if (url_interrupt_cb())
|
if (url_interrupt_cb())
|
||||||
return AVERROR_EXIT;
|
return AVERROR_EXIT;
|
||||||
av_log(NULL, AV_LOG_WARNING, "Unable to open %s\n", url);
|
av_log(h, AV_LOG_WARNING, "Unable to open %s\n", url);
|
||||||
s->cur_seq_no++;
|
s->cur_seq_no++;
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ static int gopher_connect(URLContext *h, const char *path)
|
|||||||
if (!path) return AVERROR(EINVAL);
|
if (!path) return AVERROR(EINVAL);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
av_log(NULL, AV_LOG_WARNING,
|
av_log(h, AV_LOG_WARNING,
|
||||||
"Gopher protocol type '%c' not supported yet!\n",
|
"Gopher protocol type '%c' not supported yet!\n",
|
||||||
*path);
|
*path);
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
@ -70,7 +70,7 @@ void ff_http_set_headers(URLContext *h, const char *headers)
|
|||||||
int len = strlen(headers);
|
int len = strlen(headers);
|
||||||
|
|
||||||
if (len && strcmp("\r\n", headers + len - 2))
|
if (len && strcmp("\r\n", headers + len - 2))
|
||||||
av_log(NULL, AV_LOG_ERROR, "No trailing CRLF found in HTTP header.\n");
|
av_log(h, AV_LOG_ERROR, "No trailing CRLF found in HTTP header.\n");
|
||||||
|
|
||||||
av_strlcpy(s->headers, headers, sizeof(s->headers));
|
av_strlcpy(s->headers, headers, sizeof(s->headers));
|
||||||
}
|
}
|
||||||
@ -232,7 +232,7 @@ static int process_line(URLContext *h, char *line, int line_count,
|
|||||||
* don't abort until all headers have been parsed. */
|
* don't abort until all headers have been parsed. */
|
||||||
if (s->http_code >= 400 && s->http_code < 600 && s->http_code != 401) {
|
if (s->http_code >= 400 && s->http_code < 600 && s->http_code != 401) {
|
||||||
end += strspn(end, SPACE_CHARS);
|
end += strspn(end, SPACE_CHARS);
|
||||||
av_log(NULL, AV_LOG_WARNING, "HTTP error %d %s\n",
|
av_log(h, AV_LOG_WARNING, "HTTP error %d %s\n",
|
||||||
s->http_code, end);
|
s->http_code, end);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
|
|||||||
snprintf(portstr, sizeof(portstr), "%d", port);
|
snprintf(portstr, sizeof(portstr), "%d", port);
|
||||||
ret = getaddrinfo(hostname, portstr, &hints, &ai);
|
ret = getaddrinfo(hostname, portstr, &hints, &ai);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
av_log(NULL, AV_LOG_ERROR,
|
av_log(h, AV_LOG_ERROR,
|
||||||
"Failed to resolve hostname %s: %s\n",
|
"Failed to resolve hostname %s: %s\n",
|
||||||
hostname, gai_strerror(ret));
|
hostname, gai_strerror(ret));
|
||||||
return AVERROR(EIO);
|
return AVERROR(EIO);
|
||||||
@ -119,7 +119,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
|
|||||||
optlen = sizeof(ret);
|
optlen = sizeof(ret);
|
||||||
getsockopt (fd, SOL_SOCKET, SO_ERROR, &ret, &optlen);
|
getsockopt (fd, SOL_SOCKET, SO_ERROR, &ret, &optlen);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
av_log(NULL, AV_LOG_ERROR,
|
av_log(h, AV_LOG_ERROR,
|
||||||
"TCP connection to %s:%d failed: %s\n",
|
"TCP connection to %s:%d failed: %s\n",
|
||||||
hostname, port, strerror(ret));
|
hostname, port, strerror(ret));
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@ -266,7 +266,7 @@ int ff_udp_set_remote_url(URLContext *h, const char *uri)
|
|||||||
if (connect(s->udp_fd, (struct sockaddr *) &s->dest_addr,
|
if (connect(s->udp_fd, (struct sockaddr *) &s->dest_addr,
|
||||||
s->dest_addr_len)) {
|
s->dest_addr_len)) {
|
||||||
s->is_connected = 0;
|
s->is_connected = 0;
|
||||||
av_log(NULL, AV_LOG_ERROR, "connect: %s\n", strerror(errno));
|
av_log(h, AV_LOG_ERROR, "connect: %s\n", strerror(errno));
|
||||||
return AVERROR(EIO);
|
return AVERROR(EIO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -410,7 +410,7 @@ static int udp_open(URLContext *h, const char *uri, int flags)
|
|||||||
/* limit the tx buf size to limit latency */
|
/* limit the tx buf size to limit latency */
|
||||||
tmp = s->buffer_size;
|
tmp = s->buffer_size;
|
||||||
if (setsockopt(udp_fd, SOL_SOCKET, SO_SNDBUF, &tmp, sizeof(tmp)) < 0) {
|
if (setsockopt(udp_fd, SOL_SOCKET, SO_SNDBUF, &tmp, sizeof(tmp)) < 0) {
|
||||||
av_log(NULL, AV_LOG_ERROR, "setsockopt(SO_SNDBUF): %s\n", strerror(errno));
|
av_log(h, AV_LOG_ERROR, "setsockopt(SO_SNDBUF): %s\n", strerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -418,14 +418,14 @@ static int udp_open(URLContext *h, const char *uri, int flags)
|
|||||||
* avoid losing data on OSes that set this too low by default. */
|
* avoid losing data on OSes that set this too low by default. */
|
||||||
tmp = s->buffer_size;
|
tmp = s->buffer_size;
|
||||||
if (setsockopt(udp_fd, SOL_SOCKET, SO_RCVBUF, &tmp, sizeof(tmp)) < 0) {
|
if (setsockopt(udp_fd, SOL_SOCKET, SO_RCVBUF, &tmp, sizeof(tmp)) < 0) {
|
||||||
av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_RECVBUF): %s\n", strerror(errno));
|
av_log(h, AV_LOG_WARNING, "setsockopt(SO_RECVBUF): %s\n", strerror(errno));
|
||||||
}
|
}
|
||||||
/* make the socket non-blocking */
|
/* make the socket non-blocking */
|
||||||
ff_socket_nonblock(udp_fd, 1);
|
ff_socket_nonblock(udp_fd, 1);
|
||||||
}
|
}
|
||||||
if (s->is_connected) {
|
if (s->is_connected) {
|
||||||
if (connect(udp_fd, (struct sockaddr *) &s->dest_addr, s->dest_addr_len)) {
|
if (connect(udp_fd, (struct sockaddr *) &s->dest_addr, s->dest_addr_len)) {
|
||||||
av_log(NULL, AV_LOG_ERROR, "connect: %s\n", strerror(errno));
|
av_log(h, AV_LOG_ERROR, "connect: %s\n", strerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user