From 2c34596ff7fcf4699b70243dfefc6a1fb67909cc Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 13 Apr 2005 01:07:30 +0000 Subject: non 4:2:0 foobar.{Y,U,V} support Originally committed as revision 4125 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/img2.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libavformat/img2.c') diff --git a/libavformat/img2.c b/libavformat/img2.c index 4cfd9eb6ba..0a53a5b824 100644 --- a/libavformat/img2.c +++ b/libavformat/img2.c @@ -222,6 +222,8 @@ static int img_read_header(AVFormatContext *s1, AVFormatParameters *ap) st->codec.codec_type = CODEC_TYPE_VIDEO; st->codec.codec_id = av_str2id(img_tags, s->path); } + if(st->codec.codec_type == CODEC_TYPE_VIDEO && ap->pix_fmt) + st->codec.pix_fmt = ap->pix_fmt; return 0; } @@ -336,10 +338,10 @@ static int img_write_packet(AVFormatContext *s, AVPacket *pkt) } if(codec->codec_id == CODEC_ID_RAWVIDEO){ - int size = (codec->width * codec->height)>>2; - put_buffer(pb[0], pkt->data , 4*size); - put_buffer(pb[1], pkt->data + 4*size, size); - put_buffer(pb[2], pkt->data + 5*size, size); + int ysize = codec->width * codec->height; + put_buffer(pb[0], pkt->data , ysize); + put_buffer(pb[1], pkt->data + ysize, (pkt->size - ysize)/2); + put_buffer(pb[2], pkt->data + ysize +(pkt->size - ysize)/2, (pkt->size - ysize)/2); put_flush_packet(pb[1]); put_flush_packet(pb[2]); url_fclose(pb[1]); -- cgit v1.2.3