X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Flibmjpeg.C;h=f2df6ddc4631c0a002a817941126acca66c67af1;hb=723142d62d61cde588e961426440f839ca9dcda9;hp=14937dfbc7ff686159a2aabaacfb4a1037be4fce;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/libmjpeg.C b/cinelerra-5.1/cinelerra/libmjpeg.C index 14937dfb..f2df6ddc 100644 --- a/cinelerra-5.1/cinelerra/libmjpeg.C +++ b/cinelerra-5.1/cinelerra/libmjpeg.C @@ -704,17 +704,18 @@ static void get_mcu_rows(mjpeg_t *mjpeg, mjpeg_compressor *engine, int start_row) { - int i, j, scanline; + int i, j, scanline, lastline; for(i = 0; i < 3; i++) { for(j = 0; j < 16; j++) { - if(i > 0 && j >= 8 && mjpeg->jpeg_color_model == BC_YUV420P) break; - scanline = start_row; - if(i > 0 && mjpeg->jpeg_color_model == BC_YUV420P) scanline /= 2; + lastline = engine->coded_field_h; + if(i > 0 && mjpeg->jpeg_color_model == BC_YUV420P) { + lastline /= 2; scanline /= 2; + } scanline += j; - if(scanline >= engine->coded_field_h) scanline = engine->coded_field_h - 1; + if(scanline >= lastline) scanline = lastline - 1; engine->mcu_rows[i][j] = engine->rows[i][scanline]; } } @@ -771,13 +772,12 @@ printf("decompress_field %d\n", __LINE__); jpeg_start_decompress(&engine->jpeg_decompress); // Generate colormodel from jpeg sampling - if(engine->jpeg_decompress.comp_info[0].v_samp_factor == 2 && - engine->jpeg_decompress.comp_info[0].h_samp_factor == 2) - mjpeg->jpeg_color_model = BC_YUV420P; - else - if(engine->jpeg_decompress.comp_info[0].v_samp_factor == 1 && - engine->jpeg_decompress.comp_info[0].h_samp_factor == 2) - mjpeg->jpeg_color_model = BC_YUV422P; + if( engine->jpeg_decompress.comp_info[0].v_samp_factor == 2 && + engine->jpeg_decompress.comp_info[0].h_samp_factor == 2) + mjpeg->jpeg_color_model = BC_YUV420P; + else if(engine->jpeg_decompress.comp_info[0].v_samp_factor == 1 && + engine->jpeg_decompress.comp_info[0].h_samp_factor == 2) + mjpeg->jpeg_color_model = BC_YUV422P; else mjpeg->jpeg_color_model = BC_YUV444P; @@ -1528,29 +1528,6 @@ typedef struct int unpadded_field_size; } avi_hdr_t; -#define LML_MARKER_SIZE 0x2c -#define LML_MARKER_TAG 0xffe3 -void insert_lml33_markers(unsigned char **buffer, - long *field2_offset, - long *buffer_size, - long *buffer_allocated) -{ - long marker_offset = -1; - -/* Search for existing marker to replace */ -// marker_offset = find_marker(*buffer, *buffer_size, LML_MARKER_TAG); - -/* Insert new marker */ - if(marker_offset < 0) - { - marker_offset = 2; - insert_space(buffer, - buffer_size, - buffer_allocated, - 2, - LML_MARKER_SIZE); - } -} static int qt_table_offsets(unsigned char *buffer, long buffer_size,