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;