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];
}
}
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;
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,