mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
Merge remote branch 'qatar/master'
* qatar/master: Makefile: Include dependencies for test tools, too Remove a version check in av_log made unnecessary by the big bump. update last major version increase dates in APIchanges Reduce picture size for yadif. oggdec: use av_freep() instead of av_free() avio: Fix sanity checks in ffurl_read* libavformat: Free AVFormatContext->streams libavformat: Make protocols pass URLContext as log context where available asf: remove commented out code in asf_read_seek not pulled: libpostproc: Remove crufty code disabled by the big bump. Reflect 0.7_beta1 release in the Changelog not pulled: sws: remove disabled cruft. lavu: remove disabled ff_random_get_seed cruft. lavu: remove disabled sha1 cruft. Conflicts: Changelog libavutil/sha1.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
10d2ae8cf7
@ -9,6 +9,11 @@ version <next>:
|
||||
- mpeg2 aspect ratio dection fixed
|
||||
- libxvid aspect pickiness fixed
|
||||
- Frame multithreaded decoding
|
||||
- Lots of deprecated API cruft removed
|
||||
|
||||
|
||||
version 0.7_beta1:
|
||||
|
||||
- WebM support in Matroska de/muxer
|
||||
- low overhead Ogg muxing
|
||||
- MMS-TCP support
|
||||
|
1
Makefile
1
Makefile
@ -93,6 +93,7 @@ tools/%.o: tools/%.c
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) -c $(CC_O) $<
|
||||
|
||||
-include $(wildcard tools/*.d)
|
||||
-include $(wildcard tests/*.d)
|
||||
|
||||
ffplay.o: CFLAGS += $(SDL_CFLAGS)
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
Never assume the API of libav* to be stable unless at least 1 week has passed since
|
||||
the last major version increase.
|
||||
The last version increases were:
|
||||
libavcodec: ?
|
||||
libavdevice: ?
|
||||
libavfilter: 2009-10-18
|
||||
libavformat: ?
|
||||
libpostproc: ?
|
||||
libswscale: ?
|
||||
libavutil: 2009-03-08
|
||||
libavcodec: 2011-04-18
|
||||
libavdevice: 2011-04-18
|
||||
libavfilter: 2011-04-18
|
||||
libavformat: 2011-04-18
|
||||
libpostproc: 2011-04-18
|
||||
libswscale: 2011-04-18
|
||||
libavutil: 2011-04-18
|
||||
|
||||
|
||||
API changes, most recent first:
|
||||
|
@ -195,7 +195,7 @@ static int applehttp_open(URLContext *h, const char *uri, int flags)
|
||||
av_strlcpy(s->playlisturl, "http://", sizeof(s->playlisturl));
|
||||
av_strlcat(s->playlisturl, nested_url, sizeof(s->playlisturl));
|
||||
} 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);
|
||||
goto fail;
|
||||
}
|
||||
@ -218,7 +218,7 @@ static int applehttp_open(URLContext *h, const char *uri, int flags)
|
||||
}
|
||||
|
||||
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);
|
||||
goto fail;
|
||||
}
|
||||
@ -258,7 +258,7 @@ retry:
|
||||
return ret;
|
||||
}
|
||||
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",
|
||||
s->start_seq_no - s->cur_seq_no);
|
||||
s->cur_seq_no = s->start_seq_no;
|
||||
@ -274,12 +274,12 @@ retry:
|
||||
goto retry;
|
||||
}
|
||||
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);
|
||||
if (ret < 0) {
|
||||
if (url_interrupt_cb())
|
||||
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++;
|
||||
goto retry;
|
||||
}
|
||||
|
@ -1262,27 +1262,6 @@ static int asf_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int
|
||||
/* find the position */
|
||||
pos = st->index_entries[index].pos;
|
||||
|
||||
// various attempts to find key frame have failed so far
|
||||
// asf_reset_header(s);
|
||||
// avio_seek(s->pb, pos, SEEK_SET);
|
||||
// key_pos = pos;
|
||||
// for(i=0;i<16;i++){
|
||||
// pos = avio_tell(s->pb);
|
||||
// if (av_read_frame(s, &pkt) < 0){
|
||||
// av_log(s, AV_LOG_INFO, "seek failed\n");
|
||||
// return -1;
|
||||
// }
|
||||
// asf_st = s->streams[stream_index]->priv_data;
|
||||
// pos += st->parser->frame_offset;
|
||||
//
|
||||
// if (pkt.size > b) {
|
||||
// b = pkt.size;
|
||||
// key_pos = pos;
|
||||
// }
|
||||
//
|
||||
// av_free_packet(&pkt);
|
||||
// }
|
||||
|
||||
/* do the seek */
|
||||
av_log(s, AV_LOG_DEBUG, "SEEKTO: %"PRId64"\n", pos);
|
||||
avio_seek(s->pb, pos, SEEK_SET);
|
||||
|
@ -50,7 +50,7 @@ static int gopher_connect(URLContext *h, const char *path)
|
||||
if (!path) return AVERROR(EINVAL);
|
||||
break;
|
||||
default:
|
||||
av_log(NULL, AV_LOG_WARNING,
|
||||
av_log(h, AV_LOG_WARNING,
|
||||
"Gopher protocol type '%c' not supported yet!\n",
|
||||
*path);
|
||||
return AVERROR(EINVAL);
|
||||
|
@ -70,7 +70,7 @@ void ff_http_set_headers(URLContext *h, const char *headers)
|
||||
int len = strlen(headers);
|
||||
|
||||
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));
|
||||
}
|
||||
@ -232,7 +232,7 @@ static int process_line(URLContext *h, char *line, int line_count,
|
||||
* don't abort until all headers have been parsed. */
|
||||
if (s->http_code >= 400 && s->http_code < 600 && s->http_code != 401) {
|
||||
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);
|
||||
return -1;
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
|
||||
snprintf(portstr, sizeof(portstr), "%d", port);
|
||||
ret = getaddrinfo(hostname, portstr, &hints, &ai);
|
||||
if (ret) {
|
||||
av_log(NULL, AV_LOG_ERROR,
|
||||
av_log(h, AV_LOG_ERROR,
|
||||
"Failed to resolve hostname %s: %s\n",
|
||||
hostname, gai_strerror(ret));
|
||||
return AVERROR(EIO);
|
||||
@ -126,7 +126,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
|
||||
optlen = sizeof(ret);
|
||||
getsockopt (fd, SOL_SOCKET, SO_ERROR, &ret, &optlen);
|
||||
if (ret != 0) {
|
||||
av_log(NULL, AV_LOG_ERROR,
|
||||
av_log(h, AV_LOG_ERROR,
|
||||
"TCP connection to %s:%d failed: %s\n",
|
||||
hostname, port, strerror(ret));
|
||||
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,
|
||||
s->dest_addr_len)) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -410,7 +410,7 @@ static int udp_open(URLContext *h, const char *uri, int flags)
|
||||
/* limit the tx buf size to limit latency */
|
||||
tmp = s->buffer_size;
|
||||
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;
|
||||
}
|
||||
} 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. */
|
||||
tmp = s->buffer_size;
|
||||
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 */
|
||||
ff_socket_nonblock(udp_fd, 1);
|
||||
}
|
||||
if (s->is_connected) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -2586,6 +2586,7 @@ void avformat_free_context(AVFormatContext *s)
|
||||
av_freep(&s->chapters);
|
||||
av_metadata_free(&s->metadata);
|
||||
av_freep(&s->key);
|
||||
av_freep(&s->streams);
|
||||
av_free(s);
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,6 @@ HEADERS = adler32.h \
|
||||
rational.h \
|
||||
samplefmt.h \
|
||||
sha.h \
|
||||
sha1.h \
|
||||
|
||||
BUILT_HEADERS = avconfig.h
|
||||
|
||||
|
@ -100,7 +100,7 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
|
||||
line[0]=0;
|
||||
#undef fprintf
|
||||
if(print_prefix && avc) {
|
||||
if(avc->version >= (50<<16 | 15<<8 | 3) && avc->parent_log_context_offset){
|
||||
if (avc->parent_log_context_offset) {
|
||||
AVClass** parent= *(AVClass***)(((uint8_t*)ptr) + avc->parent_log_context_offset);
|
||||
if(parent && *parent){
|
||||
snprintf(line, sizeof(line), "[%s @ %p] ", (*parent)->item_name(parent), parent);
|
||||
|
@ -80,11 +80,3 @@ uint32_t av_get_random_seed(void)
|
||||
return seed;
|
||||
return get_generic_seed();
|
||||
}
|
||||
|
||||
#if LIBAVUTIL_VERSION_MAJOR < 51
|
||||
attribute_deprecated uint32_t ff_random_get_seed(void);
|
||||
uint32_t ff_random_get_seed(void)
|
||||
{
|
||||
return av_get_random_seed();
|
||||
}
|
||||
#endif
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include "avutil.h"
|
||||
#include "bswap.h"
|
||||
#include "sha.h"
|
||||
#include "sha1.h"
|
||||
#include "intreadwrite.h"
|
||||
|
||||
/** hash context */
|
||||
@ -324,29 +323,6 @@ void av_sha_final(AVSHA* ctx, uint8_t *digest)
|
||||
AV_WB32(digest + i*4, ctx->state[i]);
|
||||
}
|
||||
|
||||
#if LIBAVUTIL_VERSION_MAJOR < 51
|
||||
struct AVSHA1 {
|
||||
AVSHA sha;
|
||||
};
|
||||
|
||||
const int av_sha1_size = sizeof(struct AVSHA1);
|
||||
|
||||
void av_sha1_init(struct AVSHA1* context)
|
||||
{
|
||||
av_sha_init(&context->sha, 160);
|
||||
}
|
||||
|
||||
void av_sha1_update(struct AVSHA1* context, const uint8_t* data, unsigned int len)
|
||||
{
|
||||
av_sha_update(&context->sha, data, len);
|
||||
}
|
||||
|
||||
void av_sha1_final(struct AVSHA1* context, uint8_t digest[20])
|
||||
{
|
||||
av_sha_final(&context->sha, digest);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef TEST
|
||||
#include <stdio.h>
|
||||
#undef printf
|
||||
|
@ -1,57 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_SHA1_H
|
||||
#define AVUTIL_SHA1_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
extern const int av_sha1_size;
|
||||
|
||||
struct AVSHA1;
|
||||
|
||||
/**
|
||||
* Initialize SHA-1 hashing.
|
||||
*
|
||||
* @param context pointer to the function context (of size av_sha_size)
|
||||
* @deprecated use av_sha_init() instead
|
||||
*/
|
||||
void av_sha1_init(struct AVSHA1* context);
|
||||
|
||||
/**
|
||||
* Update hash value.
|
||||
*
|
||||
* @param context hash function context
|
||||
* @param data input data to update hash with
|
||||
* @param len input data length
|
||||
* @deprecated use av_sha_update() instead
|
||||
*/
|
||||
void av_sha1_update(struct AVSHA1* context, const uint8_t* data, unsigned int len);
|
||||
|
||||
/**
|
||||
* Finish hashing and output digest value.
|
||||
*
|
||||
* @param context hash function context
|
||||
* @param digest buffer where output digest value is stored
|
||||
* @deprecated use av_sha_final() instead
|
||||
*/
|
||||
void av_sha1_final(struct AVSHA1* context, uint8_t digest[20]);
|
||||
|
||||
#endif /* AVUTIL_SHA1_H */
|
Loading…
Reference in New Issue
Block a user