From 56a1000917694b2277064c5573b0dd818ad7a379 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 5 Apr 2011 12:19:35 +0200 Subject: lavf: if id3v2 tag is present and all else fails, guess by file extension --- libavformat/utils.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 31eddec12a..a5d4a6fb7c 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -371,7 +371,7 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score { AVProbeData lpd = *pd; AVInputFormat *fmt1 = NULL, *fmt; - int score; + int score, id3 = 0; if (lpd.buf_size > 10 && ff_id3v2_match(lpd.buf, ID3v2_DEFAULT_MAGIC)) { int id3len = ff_id3v2_tag_len(lpd.buf); @@ -379,6 +379,7 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score lpd.buf += id3len; lpd.buf_size -= id3len; } + id3 = 1; } fmt = NULL; @@ -399,6 +400,16 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score }else if (score == *score_max) fmt = NULL; } + + /* a hack for files with huge id3v2 tags -- try to guess by file extension. */ + if (!fmt && id3 && *score_max < AVPROBE_SCORE_MAX/4) { + while ((fmt = av_iformat_next(fmt))) + if (fmt->extensions && av_match_ext(lpd.filename, fmt->extensions)) { + *score_max = AVPROBE_SCORE_MAX/4; + break; + } + } + return fmt; } -- cgit v1.2.3 From f5b386afab51a2141447b682793ce001abdaeb5c Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 6 Apr 2011 08:16:06 +0200 Subject: Reemove remaining uses of deprecated AVERROR_NOTSUPP. --- libavformat/applehttpproto.c | 2 +- libavformat/assdec.c | 2 +- libavformat/jvdec.c | 2 +- libavformat/rtpdec_qt.c | 6 +++--- libavformat/wtv.c | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libavformat/applehttpproto.c b/libavformat/applehttpproto.c index c7e12a9fb8..64becf4634 100644 --- a/libavformat/applehttpproto.c +++ b/libavformat/applehttpproto.c @@ -181,7 +181,7 @@ static int applehttp_open(URLContext *h, const char *uri, int flags) const char *nested_url; if (flags & (URL_WRONLY | URL_RDWR)) - return AVERROR_NOTSUPP; + return AVERROR(ENOSYS); s = av_mallocz(sizeof(AppleHTTPContext)); if (!s) diff --git a/libavformat/assdec.c b/libavformat/assdec.c index a50150513c..b270200af2 100644 --- a/libavformat/assdec.c +++ b/libavformat/assdec.c @@ -168,7 +168,7 @@ static int read_seek2(AVFormatContext *s, int stream_index, ASSContext *ass = s->priv_data; if (flags & AVSEEK_FLAG_BYTE) { - return AVERROR_NOTSUPP; + return AVERROR(ENOSYS); } else if (flags & AVSEEK_FLAG_FRAME) { if (ts < 0 || ts >= ass->event_count) return AVERROR(ERANGE); diff --git a/libavformat/jvdec.c b/libavformat/jvdec.c index c180e5db4c..d4008f7148 100644 --- a/libavformat/jvdec.c +++ b/libavformat/jvdec.c @@ -192,7 +192,7 @@ static int read_seek(AVFormatContext *s, int stream_index, int i; if (flags & (AVSEEK_FLAG_BYTE|AVSEEK_FLAG_FRAME)) - return AVERROR_NOTSUPP; + return AVERROR(ENOSYS); switch(stream_index) { case 0: diff --git a/libavformat/rtpdec_qt.c b/libavformat/rtpdec_qt.c index 24977ed753..a295ba7381 100644 --- a/libavformat/rtpdec_qt.c +++ b/libavformat/rtpdec_qt.c @@ -98,7 +98,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, if (!is_start || !is_finish) { av_log_missing_feature(s, "RTP-X-QT with payload description " "split over several packets", 1); - return AVERROR_NOTSUPP; + return AVERROR(ENOSYS); } skip_bits(&gb, 12); // reserved data_len = get_bits(&gb, 16); @@ -161,7 +161,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, if (has_packet_info) { av_log_missing_feature(s, "RTP-X-QT with packet specific info", 1); - return AVERROR_NOTSUPP; + return AVERROR(ENOSYS); } alen = len - avio_tell(&pb); @@ -224,7 +224,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, default: /* unimplemented */ av_log_missing_feature(NULL, "RTP-X-QT with packing scheme 2", 1); - return AVERROR_NOTSUPP; + return AVERROR(ENOSYS); } } diff --git a/libavformat/wtv.c b/libavformat/wtv.c index 963a6bc753..8260fe19b2 100644 --- a/libavformat/wtv.c +++ b/libavformat/wtv.c @@ -1061,7 +1061,7 @@ static int read_seek(AVFormatContext *s, int stream_index, int i; if ((flags & AVSEEK_FLAG_FRAME) || (flags & AVSEEK_FLAG_BYTE)) - return AVERROR_NOTSUPP; + return AVERROR(ENOSYS); /* timestamp adjustment is required because wtv->pts values are absolute, * whereas AVIndexEntry->timestamp values are relative to epoch. */ -- cgit v1.2.3 From a2018b516794f329ef487bca62b4dd7835cad764 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 6 Apr 2011 08:18:16 +0200 Subject: lxfdec: use AVERROR(ENOMEM) instead of deprecated AVERROR_NOMEM. --- libavformat/lxfdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/lxfdec.c b/libavformat/lxfdec.c index f60d758399..0f7e4268d2 100644 --- a/libavformat/lxfdec.c +++ b/libavformat/lxfdec.c @@ -218,7 +218,7 @@ static int lxf_read_header(AVFormatContext *s, AVFormatParameters *ap) return ret < 0 ? ret : AVERROR_EOF; if (!(st = av_new_stream(s, 0))) - return AVERROR_NOMEM; + return AVERROR(ENOMEM); st->duration = AV_RL32(&header_data[32]); video_params = AV_RL32(&header_data[40]); @@ -244,7 +244,7 @@ static int lxf_read_header(AVFormatContext *s, AVFormatParameters *ap) if ((lxf->channels = (disk_params >> 2) & 0xF)) { if (!(st = av_new_stream(s, 1))) - return AVERROR_NOMEM; + return AVERROR(ENOMEM); st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->sample_rate = LXF_SAMPLERATE; -- cgit v1.2.3 From 6e37b45888d46ac621095a963013675c47ea1f55 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 6 Apr 2011 08:20:09 +0200 Subject: mmst: get rid of deprecated AVERRORs --- libavformat/mmst.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libavformat/mmst.c b/libavformat/mmst.c index cba65e2ee5..a977858c64 100644 --- a/libavformat/mmst.c +++ b/libavformat/mmst.c @@ -146,7 +146,7 @@ static int send_command_packet(MMSTContext *mmst) exact_length, write_result, write_result < 0 ? strerror(write_result) : "The server closed the connection"); - return AVERROR_IO; + return AVERROR(EIO); } return 0; @@ -268,7 +268,7 @@ static MMSSCPacketType get_tcp_server_response(MMSTContext *mmst) read_result, read_result < 0 ? strerror(read_result) : "The server closed the connection"); - return read_result < 0 ? read_result : AVERROR_IO; + return read_result < 0 ? read_result : AVERROR(EIO); } length_remaining= AV_RL32(mms->in_buffer+8) + 4; @@ -289,13 +289,13 @@ static MMSSCPacketType get_tcp_server_response(MMSTContext *mmst) length_remaining, read_result, read_result < 0 ? strerror(read_result) : "The server closed the connection"); - return read_result < 0 ? read_result : AVERROR_IO; + return read_result < 0 ? read_result : AVERROR(EIO); } packet_type= AV_RL16(mms->in_buffer+36); if (read_result >= 44 && (hr = AV_RL32(mms->in_buffer + 40))) { av_log(NULL, AV_LOG_ERROR, "Server sent a message with packet type 0x%x and error status code 0x%08x\n", packet_type, hr); - return AVERROR_UNKNOWN; + return AVERROR(EINVAL); } } else { int length_remaining; @@ -326,7 +326,7 @@ static MMSSCPacketType get_tcp_server_response(MMSTContext *mmst) length_remaining, read_result, read_result < 0 ? strerror(read_result) : "The server closed the connection"); - return read_result < 0 ? read_result : AVERROR_IO; + return read_result < 0 ? read_result : AVERROR(EIO); } // if we successfully read everything. @@ -550,7 +550,7 @@ static int mms_open(URLContext *h, const char *uri, int flags) if((mmst->incoming_flags != 0X08) && (mmst->incoming_flags != 0X0C)) { av_log(NULL, AV_LOG_ERROR, "The server does not support MMST (try MMSH or RTSP)\n"); - err = AVERROR_NOFMT; + err = AVERROR(EINVAL); goto fail; } err = ff_mms_asf_header_parser(mms); @@ -604,7 +604,7 @@ static int mms_read(URLContext *h, uint8_t *buf, int size) av_log(NULL, AV_LOG_ERROR, "Incoming pktlen %d is larger than ASF pktsize %d\n", mms->remaining_in_len, mms->asf_packet_len); - result= AVERROR_IO; + result= AVERROR(EIO); } else { // copy the data to the packet buffer. result = ff_mms_read_data(mms, buf, size); -- cgit v1.2.3 From 0ba832231dd557475ffb8c4438c2d794812a9216 Mon Sep 17 00:00:00 2001 From: Janne Grunau Date: Tue, 5 Apr 2011 20:25:48 +0200 Subject: fate: add AAC LATM test --- tests/fate/aac.mak | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/fate/aac.mak b/tests/fate/aac.mak index 05835f8fb9..41df4f619f 100644 --- a/tests/fate/aac.mak +++ b/tests/fate/aac.mak @@ -18,6 +18,10 @@ FATE_AAC += fate-aac-al_sbr_ps_06_ur fate-aac-al_sbr_ps_06_ur: CMD = pcm -i $(SAMPLES)/aac/al_sbr_ps_06_new.mp4 fate-aac-al_sbr_ps_06_ur: REF = $(SAMPLES)/aac/al_sbr_ps_06_ur.s16 +FATE_AAC += fate-aac-latm_000000001180bc60 +fate-aac-latm_000000001180bc60: CMD = pcm -i $(SAMPLES)/aac/latm_000000001180bc60.mpg +fate-aac-latm_000000001180bc60: REF = $(SAMPLES)/aac/latm_000000001180bc60.s16 + FATE_TESTS += $(FATE_AAC) fate-aac: $(FATE_AAC) $(FATE_AAC): CMP = oneoff -- cgit v1.2.3 From 0464ee9af2a3c17d78642f203cfeeb5d66c70bf2 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 6 Apr 2011 14:46:31 +0200 Subject: swscale: postpone sws_getContext removal until next major bump. The replacement isn't ready yet. --- libswscale/swscale.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libswscale/swscale.h b/libswscale/swscale.h index ebdad30a5d..aae1a6cc7e 100644 --- a/libswscale/swscale.h +++ b/libswscale/swscale.h @@ -48,7 +48,7 @@ * They may change, break or disappear at any time. */ #ifndef FF_API_SWS_GETCONTEXT -#define FF_API_SWS_GETCONTEXT (LIBSWSCALE_VERSION_MAJOR < 1) +#define FF_API_SWS_GETCONTEXT (LIBSWSCALE_VERSION_MAJOR < 2) #endif /** @@ -185,9 +185,9 @@ void sws_freeContext(struct SwsContext *swsContext); * @param dstFormat the destination image format * @param flags specify which algorithm and options to use for rescaling * @return a pointer to an allocated context, or NULL in case of error - * @deprecated use sws_alloc_context() and sws_init_context() + * @note this function is to be removed after a saner alternative is + * written */ -attribute_deprecated struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int dstW, int dstH, enum PixelFormat dstFormat, int flags, SwsFilter *srcFilter, -- cgit v1.2.3 From 1f6265e011f6e56562b2f58c182bc0261062b3c4 Mon Sep 17 00:00:00 2001 From: Brad Date: Wed, 6 Apr 2011 17:41:12 -0400 Subject: Fix parser: mark av_parser_parse() for removal on next major bump Fix the breakage introduced with 9073ca6c6ebb9e3e9b60d968b7aa16cc8b6d558d --- libavcodec/parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/parser.c b/libavcodec/parser.c index 0c69b91754..3ba3e9c4c7 100644 --- a/libavcodec/parser.c +++ b/libavcodec/parser.c @@ -105,7 +105,7 @@ void ff_fetch_timestamp(AVCodecParserContext *s, int off, int remove){ } } -#if LIBAVCODEC_VERSION_MINOR < 53 +#if LIBAVCODEC_VERSION_MAJOR < 53 /** * * @param buf input -- cgit v1.2.3