diff options
author | Aurelien Jacobs <aurel@gnuage.org> | 2006-10-22 23:19:42 +0000 |
---|---|---|
committer | Aurelien Jacobs <aurel@gnuage.org> | 2006-10-22 23:19:42 +0000 |
commit | 9e2424ce60b5a5e39478593106f7199e72b71f2d (patch) | |
tree | eecbef69118a8a89848c90249c4f43d2efbce4c8 | |
parent | 24d3e5a2f2ad2779376753772b321a7390dacb20 (diff) | |
download | ffmpeg-9e2424ce60b5a5e39478593106f7199e72b71f2d.tar.gz |
use the adjustment value present in FLV to crop VP6 video
Originally committed as revision 6770 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/vp6.c | 4 | ||||
-rw-r--r-- | libavformat/flvdec.c | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/libavcodec/vp6.c b/libavcodec/vp6.c index de6b61dc44..6d5d46b0f0 100644 --- a/libavcodec/vp6.c +++ b/libavcodec/vp6.c @@ -64,6 +64,10 @@ static int vp6_parse_header(vp56_context_t *s, uint8_t *buf, int buf_size, if (16*cols != s->avctx->coded_width || 16*rows != s->avctx->coded_height) { avcodec_set_dimensions(s->avctx, 16*cols, 16*rows); + if (s->avctx->extradata_size == 1) { + s->avctx->width -= s->avctx->extradata[0] >> 4; + s->avctx->height -= s->avctx->extradata[0] & 0x0F; + } res = 2; } diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index f9eefb197d..87984b576d 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -193,7 +193,12 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt) case 3: st->codec->codec_id = CODEC_ID_FLASHSV; break; case 4: st->codec->codec_id = CODEC_ID_VP6F; - get_byte(&s->pb); /* width and height adjustment */ + if (st->codec->extradata_size != 1) { + st->codec->extradata_size = 1; + st->codec->extradata = av_malloc(1); + } + /* width and height adjustment */ + st->codec->extradata[0] = get_byte(&s->pb); size--; break; default: |