diff options
author | Peter Ross <pross@xvid.org> | 2013-01-06 14:15:24 +1100 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2013-01-30 09:49:59 +0100 |
commit | 54e19092fd6084ed8e11f071853a0dca18e0d920 (patch) | |
tree | 2d86a5d09b94be00be417bfa0196558de6c4a0b4 | |
parent | bfd586577cbe22f863d5620fa2a85f5f5bb3c9e1 (diff) | |
download | ffmpeg-54e19092fd6084ed8e11f071853a0dca18e0d920.tar.gz |
wtvdec: demux thumbnail picture to AVStream.attached_pic
Fixes ticket #2133.
(cherry picked from commit 508836932fcbc3c109fcc4df7a2f2b0bf21bbece)
-rw-r--r-- | libavformat/wtvdec.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c index ee80719332..5e9c817856 100644 --- a/libavformat/wtvdec.c +++ b/libavformat/wtvdec.c @@ -414,6 +414,7 @@ static void get_attachment(AVFormatContext *s, AVIOContext *pb, int length) char description[1024]; unsigned int filesize; AVStream *st; + int ret; int64_t pos = avio_tell(pb); avio_get_str16le(pb, INT_MAX, mime, sizeof(mime)); @@ -430,13 +431,14 @@ static void get_attachment(AVFormatContext *s, AVIOContext *pb, int length) if (!st) goto done; av_dict_set(&st->metadata, "title", description, 0); + st->codec->codec_type = AVMEDIA_TYPE_VIDEO; st->codec->codec_id = AV_CODEC_ID_MJPEG; - st->codec->codec_type = AVMEDIA_TYPE_ATTACHMENT; - st->codec->extradata = av_mallocz(filesize); - if (!st->codec->extradata) + ret = av_get_packet(pb, &st->attached_pic, filesize); + if (ret < 0) goto done; - st->codec->extradata_size = filesize; - avio_read(pb, st->codec->extradata, filesize); + st->attached_pic.stream_index = st->index; + st->attached_pic.flags |= AV_PKT_FLAG_KEY; + st->disposition |= AV_DISPOSITION_ATTACHED_PIC; done: avio_seek(pb, pos + length, SEEK_SET); } |