Mercurial > libavcodec.hg
comparison mjpeg.c @ 935:c9bbd35064b6 libavcodec
disabled aspect code due to it is extra buggy
author | al3x |
---|---|
date | Sun, 22 Dec 2002 22:34:42 +0000 |
parents | 259f3efebef5 |
children | 693a0797398f |
comparison
equal
deleted
inserted
replaced
934:159333d9297e | 935:c9bbd35064b6 |
---|---|
718 | 718 |
719 s->mpeg_enc_ctx_allocated = 0; | 719 s->mpeg_enc_ctx_allocated = 0; |
720 s->buffer_size = 102400; /* smaller buffer should be enough, | 720 s->buffer_size = 102400; /* smaller buffer should be enough, |
721 but photojpg files could ahive bigger sizes */ | 721 but photojpg files could ahive bigger sizes */ |
722 s->buffer = av_malloc(s->buffer_size); | 722 s->buffer = av_malloc(s->buffer_size); |
723 if (!s->buffer) | |
724 return -1; | |
723 s->start_code = -1; | 725 s->start_code = -1; |
724 s->first_picture = 1; | 726 s->first_picture = 1; |
725 s->org_width = avctx->width; | 727 s->org_width = avctx->width; |
726 s->org_height = avctx->height; | 728 s->org_height = avctx->height; |
727 | 729 |
1181 if (get_bits(&s->gb, 8) == 0) | 1183 if (get_bits(&s->gb, 8) == 0) |
1182 { | 1184 { |
1183 int x_density = get_bits(&s->gb, 16); | 1185 int x_density = get_bits(&s->gb, 16); |
1184 int y_density = get_bits(&s->gb, 16); | 1186 int y_density = get_bits(&s->gb, 16); |
1185 | 1187 |
1188 dprintf("x/y density: %d (%f), %d (%f)\n", x_density, | |
1189 (float)x_density, y_density, (float)y_density); | |
1190 #if 0 | |
1186 //MN: needs to be checked | 1191 //MN: needs to be checked |
1187 if(x_density) | 1192 if(x_density) |
1188 s->avctx->aspect_ratio= s->width*y_density/((float)s->height*x_density); | 1193 // s->avctx->aspect_ratio= s->width*y_density/((float)s->height*x_density); |
1194 s->avctx->aspect_ratio = (float)x_density/y_density; | |
1195 /* it's better, but every JFIF I have seen stores 1:1 */ | |
1189 else | 1196 else |
1190 s->avctx->aspect_ratio= 0.0; | 1197 s->avctx->aspect_ratio= 0.0; |
1198 #endif | |
1191 } | 1199 } |
1192 else | 1200 else |
1193 { | 1201 { |
1194 skip_bits(&s->gb, 16); | 1202 skip_bits(&s->gb, 16); |
1195 skip_bits(&s->gb, 16); | 1203 skip_bits(&s->gb, 16); |
1196 } | 1204 } |
1205 | |
1197 t_w = get_bits(&s->gb, 8); | 1206 t_w = get_bits(&s->gb, 8); |
1198 t_h = get_bits(&s->gb, 8); | 1207 t_h = get_bits(&s->gb, 8); |
1199 if (t_w && t_h) | 1208 if (t_w && t_h) |
1200 { | 1209 { |
1201 /* skip thumbnail */ | 1210 /* skip thumbnail */ |
1432 return -1; | 1441 return -1; |
1433 break; | 1442 break; |
1434 case EOI: | 1443 case EOI: |
1435 eoi_parser: | 1444 eoi_parser: |
1436 { | 1445 { |
1437 int l; | |
1438 if (s->interlaced) { | 1446 if (s->interlaced) { |
1439 s->bottom_field ^= 1; | 1447 s->bottom_field ^= 1; |
1440 /* if not bottom field, do not output image yet */ | 1448 /* if not bottom field, do not output image yet */ |
1441 if (s->bottom_field) | 1449 if (s->bottom_field) |
1442 goto not_the_end; | 1450 goto not_the_end; |
1443 } | 1451 } |
1444 for(i=0;i<3;i++) { | 1452 for(i=0;i<3;i++) { |
1445 picture->data[i] = s->current_picture[i]; | 1453 picture->data[i] = s->current_picture[i]; |
1446 #if 1 | |
1447 l = s->linesize[i]; | |
1448 if (s->interlaced) | |
1449 l >>= 1; | |
1450 picture->linesize[i] = l; | |
1451 #else | |
1452 picture->linesize[i] = (s->interlaced) ? | 1454 picture->linesize[i] = (s->interlaced) ? |
1453 s->linesize[i] >> 1 : s->linesize[i]; | 1455 s->linesize[i] >> 1 : s->linesize[i]; |
1454 #endif | |
1455 } | 1456 } |
1456 *data_size = sizeof(AVPicture); | 1457 *data_size = sizeof(AVPicture); |
1457 avctx->height = s->height; | 1458 avctx->height = s->height; |
1458 if (s->interlaced) | 1459 if (s->interlaced) |
1459 avctx->height *= 2; | 1460 avctx->height *= 2; |