diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-02-10 13:17:58 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-02-10 13:18:04 +0100 |
commit | e88f392733fe6269fdb3fea2627b037ff654c4ce (patch) | |
tree | 068d259a9c4f09784166bb162a16dac0567ec5df | |
parent | 9a714d871ac5c7dc6d35aec56caca0c5ede68fba (diff) | |
parent | 81726a4f0b8a43e19898e2a36fdde80583bafff0 (diff) | |
download | ffmpeg-e88f392733fe6269fdb3fea2627b037ff654c4ce.tar.gz |
Merge commit '81726a4f0b8a43e19898e2a36fdde80583bafff0'
* commit '81726a4f0b8a43e19898e2a36fdde80583bafff0':
FATE: add tests for additional flavors of asf cover art
asfdec: do not assume every AVStream has a corresponding ASFStream
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/asfdec.c | 11 | ||||
-rw-r--r-- | tests/fate/cover-art.mak | 8 |
2 files changed, 14 insertions, 5 deletions
diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c index 8c6aaf497d..233b6cae79 100644 --- a/libavformat/asfdec.c +++ b/libavformat/asfdec.c @@ -22,6 +22,7 @@ //#define DEBUG #include "libavutil/attributes.h" +#include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/bswap.h" #include "libavutil/common.h" @@ -183,7 +184,6 @@ static int asf_read_picture(AVFormatContext *s, int len) enum AVCodecID id = AV_CODEC_ID_NONE; char mimetype[64]; uint8_t *desc = NULL; - ASFStream *ast = NULL; AVStream *st = NULL; int ret, type, picsize, desc_len; @@ -238,12 +238,10 @@ static int asf_read_picture(AVFormatContext *s, int len) goto fail; st = avformat_new_stream(s, NULL); - ast = av_mallocz(sizeof(*ast)); - if (!st || !ast) { + if (!st) { ret = AVERROR(ENOMEM); goto fail; } - st->priv_data = ast; st->disposition |= AV_DISPOSITION_ATTACHED_PIC; st->codec->codec_type = AVMEDIA_TYPE_VIDEO; st->codec->codec_id = id; @@ -261,7 +259,6 @@ static int asf_read_picture(AVFormatContext *s, int len) return 0; fail: - av_freep(&ast); av_freep(&desc); av_free_packet(&pkt); return ret; @@ -1155,6 +1152,7 @@ static int ff_asf_parse_packet(AVFormatContext *s, AVIOContext *pb, AVPacket *pk asf->asf_st = s->streams[asf->stream_index]->priv_data; } asf_st = asf->asf_st; + av_assert0(asf_st); if (asf->packet_replic_size == 1) { // frag_offset is here used as the beginning timestamp @@ -1364,6 +1362,8 @@ static void asf_reset_header(AVFormatContext *s) for (i = 0; i < s->nb_streams; i++) { asf_st = s->streams[i]->priv_data; + if (!asf_st) + continue; av_free_packet(&asf_st->pkt); asf_st->frag_offset = 0; asf_st->seq = 0; @@ -1413,6 +1413,7 @@ static int64_t asf_read_pts(AVFormatContext *s, int stream_index, i = pkt->stream_index; asf_st = s->streams[i]->priv_data; + av_assert0(asf_st); // assert((asf_st->packet_pos - s->data_offset) % s->packet_size == 0); pos = asf_st->packet_pos; diff --git a/tests/fate/cover-art.mak b/tests/fate/cover-art.mak index dadfcd8901..56a384e5fb 100644 --- a/tests/fate/cover-art.mak +++ b/tests/fate/cover-art.mak @@ -14,6 +14,14 @@ FATE_COVER_ART += fate-cover-art-wma fate-cover-art-wma: CMD = md5 -i $(SAMPLES)/cover_art/Californication_cover.wma -an -c:v copy -f rawvideo fate-cover-art-wma: REF = 0808bd0e1b61542a16e1906812dd924b +FATE_COVER_ART += fate-cover-art-wma-id3 +fate-cover-art-wma-id3: CMD = md5 -i $(SAMPLES)/cover_art/wma_with_ID3_APIC_trimmed.wma -an -c:v copy -f rawvideo +fate-cover-art-wma-id3: REF = e6a8dd03687d5178bc13fc7d3316696e + +FATE_COVER_ART += fate-cover-art-wma-metadatalib +fate-cover-art-wma-metadatalib: CMD = md5 -i $(SAMPLES)/cover_art/wma_with_metadata_library_object_tag_trimmed.wma -map 0:v -c:v copy -f rawvideo +fate-cover-art-wma-metadatalib: REF = 32e8bd4fad546f63d881a0256f083aea + FATE_COVER_ART += fate-cover-art-wv fate-cover-art-wv: CMD = md5 -i $(SAMPLES)/cover_art/luckynight_cover.wv -an -c:v copy -f rawvideo fate-cover-art-wv: REF = 45333c983c45af54449dff10af144317 |