Mercurial > libavformat.hg
changeset 5309:a011470132ca libavformat
If missing, calculate width or height from bpp and
image size lowering the probe score too.
author | reynaldo |
---|---|
date | Sun, 18 Oct 2009 23:56:00 +0000 |
parents | c6028d6c93b0 |
children | 7e2ae4853d3d |
files | mtv.c |
diffstat | 1 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mtv.c Sun Oct 18 23:27:23 2009 +0000 +++ b/mtv.c Sun Oct 18 23:56:00 2009 +0000 @@ -61,6 +61,15 @@ if(!(p->buf[51] && AV_RL16(&p->buf[52]) | AV_RL16(&p->buf[54]))) return 0; + /* If width or height are 0 then imagesize header field should not */ + if(AV_RL16(&p->buf[52]) && AV_RL16(&p->buf[54])) + { + if(!!AV_RL16(&p->buf[56])) + return AVPROBE_SCORE_MAX/2; + else + return 0; + } + return AVPROBE_SCORE_MAX; } @@ -82,6 +91,17 @@ mtv->img_width = get_le16(pb); mtv->img_height = get_le16(pb); mtv->img_segment_size = get_le16(pb); + + /* Calculate width and height if missing from header */ + + if(!mtv->img_width) + mtv->img_width=mtv->img_segment_size / (mtv->img_bpp>>3) + / mtv->img_height; + + if(!mtv->img_height) + mtv->img_height=mtv->img_segment_size / (mtv->img_bpp>>3) + / mtv->img_width; + url_fskip(pb, 4); audio_subsegments = get_le16(pb); mtv->full_segment_size =