use the adjustment value present in FLV to crop VP6 video

Originally committed as revision 6770 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Aurelien Jacobs 2006-10-22 23:19:42 +00:00
parent 24d3e5a2f2
commit 9e2424ce60
2 changed files with 10 additions and 1 deletions

View File

@ -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 || if (16*cols != s->avctx->coded_width ||
16*rows != s->avctx->coded_height) { 16*rows != s->avctx->coded_height) {
avcodec_set_dimensions(s->avctx, 16*cols, 16*rows); 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; res = 2;
} }

View File

@ -193,7 +193,12 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
case 3: st->codec->codec_id = CODEC_ID_FLASHSV; break; case 3: st->codec->codec_id = CODEC_ID_FLASHSV; break;
case 4: case 4:
st->codec->codec_id = CODEC_ID_VP6F; 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--; size--;
break; break;
default: default: