| @@ -414,6 +414,7 @@ static void get_attachment(AVFormatContext *s, AVIOContext *pb, int length) | |||||
| char description[1024]; | char description[1024]; | ||||
| unsigned int filesize; | unsigned int filesize; | ||||
| AVStream *st; | AVStream *st; | ||||
| int ret; | |||||
| int64_t pos = avio_tell(pb); | int64_t pos = avio_tell(pb); | ||||
| avio_get_str16le(pb, INT_MAX, mime, sizeof(mime)); | 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) | if (!st) | ||||
| goto done; | goto done; | ||||
| av_dict_set(&st->metadata, "title", description, 0); | 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_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; | 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: | done: | ||||
| avio_seek(pb, pos + length, SEEK_SET); | avio_seek(pb, pos + length, SEEK_SET); | ||||
| } | } | ||||