disabled aspect code due to it is extra buggy
Originally committed as revision 1359 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -720,6 +720,8 @@ static int mjpeg_decode_init(AVCodecContext *avctx)
|
|||||||
s->buffer_size = 102400; /* smaller buffer should be enough,
|
s->buffer_size = 102400; /* smaller buffer should be enough,
|
||||||
but photojpg files could ahive bigger sizes */
|
but photojpg files could ahive bigger sizes */
|
||||||
s->buffer = av_malloc(s->buffer_size);
|
s->buffer = av_malloc(s->buffer_size);
|
||||||
|
if (!s->buffer)
|
||||||
|
return -1;
|
||||||
s->start_code = -1;
|
s->start_code = -1;
|
||||||
s->first_picture = 1;
|
s->first_picture = 1;
|
||||||
s->org_width = avctx->width;
|
s->org_width = avctx->width;
|
||||||
@@ -1183,17 +1185,24 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
|
|||||||
int x_density = get_bits(&s->gb, 16);
|
int x_density = get_bits(&s->gb, 16);
|
||||||
int y_density = get_bits(&s->gb, 16);
|
int y_density = get_bits(&s->gb, 16);
|
||||||
|
|
||||||
|
dprintf("x/y density: %d (%f), %d (%f)\n", x_density,
|
||||||
|
(float)x_density, y_density, (float)y_density);
|
||||||
|
#if 0
|
||||||
//MN: needs to be checked
|
//MN: needs to be checked
|
||||||
if(x_density)
|
if(x_density)
|
||||||
s->avctx->aspect_ratio= s->width*y_density/((float)s->height*x_density);
|
// s->avctx->aspect_ratio= s->width*y_density/((float)s->height*x_density);
|
||||||
|
s->avctx->aspect_ratio = (float)x_density/y_density;
|
||||||
|
/* it's better, but every JFIF I have seen stores 1:1 */
|
||||||
else
|
else
|
||||||
s->avctx->aspect_ratio= 0.0;
|
s->avctx->aspect_ratio= 0.0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
skip_bits(&s->gb, 16);
|
skip_bits(&s->gb, 16);
|
||||||
skip_bits(&s->gb, 16);
|
skip_bits(&s->gb, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
t_w = get_bits(&s->gb, 8);
|
t_w = get_bits(&s->gb, 8);
|
||||||
t_h = get_bits(&s->gb, 8);
|
t_h = get_bits(&s->gb, 8);
|
||||||
if (t_w && t_h)
|
if (t_w && t_h)
|
||||||
@@ -1434,7 +1443,6 @@ static int mjpeg_decode_frame(AVCodecContext *avctx,
|
|||||||
case EOI:
|
case EOI:
|
||||||
eoi_parser:
|
eoi_parser:
|
||||||
{
|
{
|
||||||
int l;
|
|
||||||
if (s->interlaced) {
|
if (s->interlaced) {
|
||||||
s->bottom_field ^= 1;
|
s->bottom_field ^= 1;
|
||||||
/* if not bottom field, do not output image yet */
|
/* if not bottom field, do not output image yet */
|
||||||
@@ -1443,15 +1451,8 @@ eoi_parser:
|
|||||||
}
|
}
|
||||||
for(i=0;i<3;i++) {
|
for(i=0;i<3;i++) {
|
||||||
picture->data[i] = s->current_picture[i];
|
picture->data[i] = s->current_picture[i];
|
||||||
#if 1
|
|
||||||
l = s->linesize[i];
|
|
||||||
if (s->interlaced)
|
|
||||||
l >>= 1;
|
|
||||||
picture->linesize[i] = l;
|
|
||||||
#else
|
|
||||||
picture->linesize[i] = (s->interlaced) ?
|
picture->linesize[i] = (s->interlaced) ?
|
||||||
s->linesize[i] >> 1 : s->linesize[i];
|
s->linesize[i] >> 1 : s->linesize[i];
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
*data_size = sizeof(AVPicture);
|
*data_size = sizeof(AVPicture);
|
||||||
avctx->height = s->height;
|
avctx->height = s->height;
|
||||||
|
|||||||
Reference in New Issue
Block a user