mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
enable mjpeg in swf
Originally committed as revision 7458 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
655254f001
commit
a0dc1ccd29
@ -833,6 +833,16 @@ static int swf_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
||||
if (len > 4)
|
||||
url_fskip(pb,len-4);
|
||||
|
||||
} else if (tag == TAG_JPEG2 && !vst) {
|
||||
vst = av_new_stream(s, -2); /* -2 to avoid clash with video stream and audio stream */
|
||||
av_set_pts_info(vst, 24, 1, 1000); /* 24 bit pts in ms */
|
||||
vst->codec->codec_type = CODEC_TYPE_VIDEO;
|
||||
vst->codec->codec_id = CODEC_ID_MJPEG;
|
||||
if (swf->samples_per_frame) {
|
||||
vst->codec->time_base.den = 1000. / swf->ms_per_frame;
|
||||
vst->codec->time_base.num = 1;
|
||||
}
|
||||
url_fskip(pb, len);
|
||||
} else {
|
||||
url_fskip(pb, len);
|
||||
}
|
||||
@ -874,6 +884,24 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
pkt->stream_index = st->index;
|
||||
return pkt->size;
|
||||
}
|
||||
} else if (tag == TAG_JPEG2) {
|
||||
for (i=0; i<s->nb_streams; i++) {
|
||||
st = s->streams[i];
|
||||
if (st->id == -2) {
|
||||
get_le16(pb); /* BITMAP_ID */
|
||||
av_new_packet(pkt, len-2);
|
||||
get_buffer(pb, pkt->data, 4);
|
||||
if (BE_32(pkt->data) == 0xffd8ffd9) {
|
||||
/* old SWF files containing SOI/EOI as data start */
|
||||
pkt->size -= 4;
|
||||
get_buffer(pb, pkt->data, pkt->size);
|
||||
} else {
|
||||
get_buffer(pb, pkt->data + 4, pkt->size - 4);
|
||||
}
|
||||
pkt->stream_index = st->index;
|
||||
return pkt->size;
|
||||
}
|
||||
}
|
||||
}
|
||||
url_fskip(pb, len);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user