aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-07-16 20:45:35 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-07-16 20:45:41 +0200
commit9db747b2a300380dd65032818155067054332dae (patch)
tree72d665b0be4eb133524bb21fb4a66a4b30dfb0cb
parent5dba4cbc2f3f64b188289804216a737528ced290 (diff)
parent08e087ccf7f7ef9b4e8c55b571bc779c0bc815b0 (diff)
downloadffmpeg-9db747b2a300380dd65032818155067054332dae.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: rtmp: rtmp_parse_result() add case for video and audio packets to avoid undesired debug output. configure: Move the getaddrinfo function check into the network block configure: Remove an unused 'have' item mpeg: remove disabled code libfdk-aac: Check if cutoff value is valid network: Always use our version of gai_strerror on windows network: Undefine existing gai_strerror definitions network: Extend the fallback gai_strerror implementation to handle more error codes Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rwxr-xr-xconfigure5
-rw-r--r--libavcodec/libfdk-aacenc.c5
-rw-r--r--libavformat/mpeg.c41
-rw-r--r--libavformat/network.h25
-rw-r--r--libavformat/os_support.c12
-rw-r--r--libavformat/rtmpproto.c4
6 files changed, 44 insertions, 48 deletions
diff --git a/configure b/configure
index 084c161d17..466346708e 100755
--- a/configure
+++ b/configure
@@ -1190,7 +1190,6 @@ HAVE_LIST="
clock_gettime
closesocket
cmov
- CommandLineToArgvW
cpuid
dcbzl
dev_bktr_ioctl_bt848_h
@@ -3155,6 +3154,7 @@ if enabled network; then
check_type "sys/types.h sys/socket.h" "struct sockaddr_storage"
check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len
check_header netinet/sctp.h
+ check_func getaddrinfo $network_extralibs
# Prefer arpa/inet.h over winsock2
if check_header arpa/inet.h ; then
check_func closesocket
@@ -3163,6 +3163,7 @@ if enabled network; then
network_extralibs="-lws2" || \
{ check_func_headers winsock2.h closesocket -lws2_32 && \
network_extralibs="-lws2_32"; }
+ check_func_headers ws2tcpip.h getaddrinfo $network_extralibs
check_type ws2tcpip.h socklen_t
check_type ws2tcpip.h "struct addrinfo"
check_type ws2tcpip.h "struct group_source_req"
@@ -3183,8 +3184,6 @@ check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; }
check_func clock_gettime || { check_func clock_gettime -lrt && add_extralibs -lrt; }
check_func fcntl
check_func fork
-check_func getaddrinfo $network_extralibs ||
- check_func_headers ws2tcpip.h getaddrinfo $network_extralibs
check_func gethrtime
check_func getopt
check_func getrusage
diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
index 74d0d806cd..c1eada0dfe 100644
--- a/libavcodec/libfdk-aacenc.c
+++ b/libavcodec/libfdk-aacenc.c
@@ -231,6 +231,11 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
}
if (avctx->cutoff > 0) {
+ if (avctx->cutoff < (avctx->sample_rate + 255) >> 8) {
+ av_log(avctx, AV_LOG_ERROR, "cutoff valid range is %d-20000\n",
+ (avctx->sample_rate + 255) >> 8);
+ goto error;
+ }
if ((err = aacEncoder_SetParam(s->handle, AACENC_BANDWIDTH,
avctx->cutoff)) != AACENC_OK) {
av_log(avctx, AV_LOG_ERROR, "Unable to set the encoder bandwith to %d: %s\n",
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index 2ade85ad52..ec04022241 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -167,41 +167,6 @@ static int find_next_start_code(AVIOContext *pb, int *size_ptr,
return val;
}
-#if 0 /* unused, remove? */
-/* XXX: optimize */
-static int find_prev_start_code(AVIOContext *pb, int *size_ptr)
-{
- int64_t pos, pos_start;
- int max_size, start_code;
-
- max_size = *size_ptr;
- pos_start = avio_tell(pb);
-
- /* in order to go faster, we fill the buffer */
- pos = pos_start - 16386;
- if (pos < 0)
- pos = 0;
- avio_seek(pb, pos, SEEK_SET);
- avio_r8(pb);
-
- pos = pos_start;
- for(;;) {
- pos--;
- if (pos < 0 || (pos_start - pos) >= max_size) {
- start_code = -1;
- goto the_end;
- }
- avio_seek(pb, pos, SEEK_SET);
- start_code = avio_rb32(pb);
- if ((start_code & 0xffffff00) == 0x100)
- break;
- }
- the_end:
- *size_ptr = pos_start - pos;
- return start_code;
-}
-#endif
-
/**
* Extract stream types from a program stream map
* According to ISO/IEC 13818-1 ('MPEG-2 Systems') table 2-35
@@ -331,12 +296,6 @@ static int mpegps_read_pes_header(AVFormatContext *s,
}
} else if ((c & 0xc0) == 0x80) {
/* mpeg 2 PES */
-#if 0 /* some streams have this field set for no apparent reason */
- if ((c & 0x30) != 0) {
- /* Encrypted multiplex not handled */
- goto redo;
- }
-#endif
flags = avio_r8(s->pb);
header_len = avio_r8(s->pb);
len -= 2;
diff --git a/libavformat/network.h b/libavformat/network.h
index 33cd517b51..cce188f464 100644
--- a/libavformat/network.h
+++ b/libavformat/network.h
@@ -110,17 +110,33 @@ struct addrinfo {
#endif
/* getaddrinfo constants */
+#ifndef EAI_AGAIN
+#define EAI_AGAIN 2
+#endif
+#ifndef EAI_BADFLAGS
+#define EAI_BADFLAGS 3
+#endif
#ifndef EAI_FAIL
#define EAI_FAIL 4
#endif
-
#ifndef EAI_FAMILY
#define EAI_FAMILY 5
#endif
-
+#ifndef EAI_MEMORY
+#define EAI_MEMORY 6
+#endif
+#ifndef EAI_NODATA
+#define EAI_NODATA 7
+#endif
#ifndef EAI_NONAME
#define EAI_NONAME 8
#endif
+#ifndef EAI_SERVICE
+#define EAI_SERVICE 9
+#endif
+#ifndef EAI_SOCKTYPE
+#define EAI_SOCKTYPE 10
+#endif
#ifndef AI_PASSIVE
#define AI_PASSIVE 1
@@ -161,10 +177,13 @@ void ff_freeaddrinfo(struct addrinfo *res);
int ff_getnameinfo(const struct sockaddr *sa, int salen,
char *host, int hostlen,
char *serv, int servlen, int flags);
-const char *ff_gai_strerror(int ecode);
#define getaddrinfo ff_getaddrinfo
#define freeaddrinfo ff_freeaddrinfo
#define getnameinfo ff_getnameinfo
+#endif
+#if !HAVE_GETADDRINFO || HAVE_WINSOCK2_H
+const char *ff_gai_strerror(int ecode);
+#undef gai_strerror
#define gai_strerror ff_gai_strerror
#endif
diff --git a/libavformat/os_support.c b/libavformat/os_support.c
index a5f51e5845..1024704579 100644
--- a/libavformat/os_support.c
+++ b/libavformat/os_support.c
@@ -240,18 +240,28 @@ int ff_getnameinfo(const struct sockaddr *sa, int salen,
return 0;
}
+#endif /* !HAVE_GETADDRINFO */
+#if !HAVE_GETADDRINFO || HAVE_WINSOCK2_H
const char *ff_gai_strerror(int ecode)
{
switch(ecode) {
+ case EAI_AGAIN : return "Temporary failure in name resolution";
+ case EAI_BADFLAGS: return "Invalid flags for ai_flags";
case EAI_FAIL : return "A non-recoverable error occurred";
case EAI_FAMILY : return "The address family was not recognized or the address length was invalid for the specified family";
+ case EAI_MEMORY : return "Memory allocation failure";
+#if EAI_NODATA != EAI_NONAME
+ case EAI_NODATA : return "No address associated with hostname";
+#endif
case EAI_NONAME : return "The name does not resolve for the supplied parameters";
+ case EAI_SERVICE: return "servname not supported for ai_socktype";
+ case EAI_SOCKTYPE: return "ai_socktype not supported";
}
return "Unknown error";
}
-#endif
+#endif /* !HAVE_GETADDRINFO || HAVE_WINSOCK2_H */
int ff_socket_nonblock(int socket, int enable)
{
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 4bdda4d097..1290b7e5cf 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -959,6 +959,10 @@ static int rtmp_parse_result(URLContext *s, RTMPContext *rt, RTMPPacket *pkt)
return ret;
}
break;
+ case RTMP_PT_VIDEO:
+ case RTMP_PT_AUDIO:
+ /* Audio and Video packets are parsed in get_packet() */
+ break;
default:
av_log(s, AV_LOG_VERBOSE, "Unknown packet type received 0x%02X\n", pkt->type);
break;