You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	enable mjpeg in swf
Originally committed as revision 7458 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		| @@ -833,6 +833,16 @@ static int swf_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||||
|             if (len > 4) |             if (len > 4) | ||||||
|                 url_fskip(pb,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 { |         } else { | ||||||
|             url_fskip(pb, len); |             url_fskip(pb, len); | ||||||
|         } |         } | ||||||
| @@ -874,6 +884,24 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt) | |||||||
|                 pkt->stream_index = st->index; |                 pkt->stream_index = st->index; | ||||||
|                 return pkt->size; |                 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); |         url_fskip(pb, len); | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user