Merge remote-tracking branch 'qatar/master'
* qatar/master: mss3: use standard zigzag table mss3: split DSP functions that are used in MTS2(MSS4) into separate file motion-test: do not use getopt() tcp: add initial timeout limit for incoming connections configure: Change the rdtsc check to a linker check avconv: propagate fatal errors from lavfi. lavfi: add error handling to filter_samples(). fate-run: make avconv() properly deal with multiple inputs. asplit: don't leak the input buffer. af_resample: fix request_frame() behavior. af_asyncts: fix request_frame() behavior. libx264: support aspect ratio switching matroskadec: honor error_recognition when encountering unknown elements. lavr: resampling: add support for s32p, fltp, and dblp internal sample formats lavr: resampling: add filter type and Kaiser window beta to AVOptions lavr: Use AV_SAMPLE_FMT_NONE to auto-select the internal sample format lavr: mix: validate internal sample format in ff_audio_mix_init() Conflicts: ffmpeg.c ffplay.c libavcodec/libx264.c libavfilter/audio.c libavfilter/split.c libavformat/tcp.c tests/fate-run.sh Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		@@ -842,8 +842,11 @@ static int ebml_parse_id(MatroskaDemuxContext *matroska, EbmlSyntax *syntax,
 | 
			
		||||
        matroska->num_levels > 0 &&
 | 
			
		||||
        matroska->levels[matroska->num_levels-1].length == 0xffffffffffffff)
 | 
			
		||||
        return 0;  // we reached the end of an unknown size cluster
 | 
			
		||||
    if (!syntax[i].id && id != EBML_ID_VOID && id != EBML_ID_CRC32)
 | 
			
		||||
    if (!syntax[i].id && id != EBML_ID_VOID && id != EBML_ID_CRC32) {
 | 
			
		||||
        av_log(matroska->ctx, AV_LOG_INFO, "Unknown entry 0x%X\n", id);
 | 
			
		||||
        if (matroska->ctx->error_recognition & AV_EF_EXPLODE)
 | 
			
		||||
            return AVERROR_INVALIDDATA;
 | 
			
		||||
    }
 | 
			
		||||
    return ebml_parse_elem(matroska, &syntax[i], data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
 | 
			
		||||
    char buf[256];
 | 
			
		||||
    int ret;
 | 
			
		||||
    socklen_t optlen;
 | 
			
		||||
    int timeout = 50;
 | 
			
		||||
    int timeout = 50, listen_timeout = -1;
 | 
			
		||||
    char hostname[1024],proto[1024],path[1024];
 | 
			
		||||
    char portstr[10];
 | 
			
		||||
 | 
			
		||||
@@ -59,6 +59,9 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
 | 
			
		||||
        if (av_find_info_tag(buf, sizeof(buf), "timeout", p)) {
 | 
			
		||||
            timeout = strtol(buf, NULL, 10);
 | 
			
		||||
        }
 | 
			
		||||
        if (av_find_info_tag(buf, sizeof(buf), "listen_timeout", p)) {
 | 
			
		||||
            listen_timeout = strtol(buf, NULL, 10);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    hints.ai_family = AF_UNSPEC;
 | 
			
		||||
    hints.ai_socktype = SOCK_STREAM;
 | 
			
		||||
@@ -87,6 +90,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
 | 
			
		||||
    if (listen_socket) {
 | 
			
		||||
        int fd1;
 | 
			
		||||
        int reuse = 1;
 | 
			
		||||
        struct pollfd lp = { fd, POLLIN, 0 };
 | 
			
		||||
        setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
 | 
			
		||||
        ret = bind(fd, cur_ai->ai_addr, cur_ai->ai_addrlen);
 | 
			
		||||
        if (ret) {
 | 
			
		||||
@@ -98,6 +102,11 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
 | 
			
		||||
            ret = ff_neterrno();
 | 
			
		||||
            goto fail1;
 | 
			
		||||
        }
 | 
			
		||||
        ret = poll(&lp, 1, listen_timeout >= 0 ? listen_timeout : -1);
 | 
			
		||||
        if (ret <= 0) {
 | 
			
		||||
            ret = AVERROR(ETIMEDOUT);
 | 
			
		||||
            goto fail1;
 | 
			
		||||
        }
 | 
			
		||||
        fd1 = accept(fd, NULL, NULL);
 | 
			
		||||
        if (fd1 < 0) {
 | 
			
		||||
            ret = ff_neterrno();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user