Home | History | Annotate | Download | only in codec

Lines Matching defs:dinfo

106 static SkEncodedOrigin get_exif_orientation(jpeg_decompress_struct* dinfo) {
108 for (jpeg_marker_struct* marker = dinfo->marker_list; marker; marker = marker->next) {
131 static sk_sp<SkColorSpace> read_color_space(jpeg_decompress_struct* dinfo) {
139 for (jpeg_marker_struct* marker = dinfo->marker_list; marker; marker = marker->next) {
213 jpeg_save_markers(decoderMgr->dinfo(), kExifMarker, 0xFFFF);
214 jpeg_save_markers(decoderMgr->dinfo(), kICCMarker, 0xFFFF);
218 switch (jpeg_read_header(decoderMgr->dinfo(), true)) {
237 SkEncodedOrigin orientation = get_exif_orientation(decoderMgr->dinfo());
238 sk_sp<SkColorSpace> colorSpace = read_color_space(decoderMgr->dinfo());
240 switch (decoderMgr->dinfo()->jpeg_color_space) {
265 const int width = decoderMgr->dinfo()->image_width;
266 const int height = decoderMgr->dinfo()->image_height;
303 , fReadyState(decoderMgr->dinfo()->global_state)
312 static size_t get_row_bytes(const j_decompress_ptr dinfo) {
313 const size_t colorBytes = (dinfo->out_color_space == JCS_RGB565) ? 2 :
314 dinfo->out_color_components;
315 return dinfo->output_width * colorBytes;
325 void calc_output_dimensions(jpeg_decompress_struct* dinfo, unsigned int num, unsigned int denom) {
326 dinfo->num_components = 0;
327 dinfo->scale_num = num;
328 dinfo->scale_denom = denom;
329 jpeg_calc_output_dimensions(dinfo);
359 jpeg_decompress_struct dinfo;
360 sk_bzero(&dinfo, sizeof(dinfo));
361 dinfo.image_width = this->getInfo().width();
362 dinfo.image_height = this->getInfo().height();
363 dinfo.global_state = fReadyState;
364 calc_output_dimensions(&dinfo, num, denom);
367 return SkISize::Make(dinfo.output_width, dinfo.output_height);
401 J_COLOR_SPACE encodedColorType = fDecoderMgr->dinfo()->jpeg_color_space;
406 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
412 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
414 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_BGRA;
419 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
421 fDecoderMgr->dinfo()->dither_mode = JDITHER_NONE;
422 fDecoderMgr->dinfo()->out_color_space = JCS_RGB565;
430 fDecoderMgr->dinfo()->out_color_space = JCS_GRAYSCALE;
439 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
448 dinfo()->out_color_space = JCS_CMYK;
469 jpeg_decompress_struct dinfo;
470 sk_bzero(&dinfo, sizeof(dinfo));
471 dinfo.image_width = this->getInfo().width();
472 dinfo.image_height = this->getInfo().height();
473 dinfo.global_state = fReadyState;
478 calc_output_dimensions(&dinfo, num, denom);
479 while (dinfo.output_width != dstWidth || dinfo.output_height != dstHeight) {
482 if (1 == num || dstWidth > dinfo.output_width || dstHeight > dinfo.output_height) {
488 calc_output_dimensions(&dinfo, num, denom);
491 fDecoderMgr->dinfo()->scale_num = num;
492 fDecoderMgr->dinfo()->scale_denom = denom;
534 uint32_t lines = jpeg_read_scanlines(fDecoderMgr->dinfo(), &decodeDst, 1);
584 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
597 if (!jpeg_start_decompress(dinfo)) {
603 SkASSERT(1 == dinfo->rec_outbuf_height);
605 if (needs_swizzler_to_convert_from_cmyk(dinfo->out_color_space, this->getInfo(),
626 swizzleBytes = get_row_bytes(fDecoderMgr->dinfo());
683 fDecoderMgr->dinfo()->out_color_space, this->getInfo(), this->colorXform());
703 if (!jpeg_start_decompress(fDecoderMgr->dinfo())) {
709 fDecoderMgr->dinfo()->out_color_space, this->getInfo(), this->colorXform());
719 jpeg_crop_scanline(fDecoderMgr->dinfo(), &startX, &width);
761 fDecoderMgr->dinfo()->output_scanline = this->dstInfo().height();
774 return (uint32_t) count == jpeg_skip_scanlines(fDecoderMgr->dinfo(), count);
777 static bool is_yuv_supported(jpeg_decompress_struct* dinfo) {
779 SkASSERT(dinfo->scale_num == dinfo->scale_denom);
784 if (JCS_YCbCr != dinfo->jpeg_color_space) {
788 SkASSERT(3 == dinfo->num_components);
789 SkASSERT(dinfo->comp_info);
806 if ((1 != dinfo->comp_info[1].h_samp_factor) ||
807 (1 != dinfo->comp_info[1].v_samp_factor) ||
808 (1 != dinfo->comp_info[2].h_samp_factor) ||
809 (1 != dinfo->comp_info[2].v_samp_factor))
822 int hSampY = dinfo->comp_info[0].h_samp_factor;
823 int vSampY = dinfo->comp_info[0].v_samp_factor;
833 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
834 if (!is_yuv_supported(dinfo)) {
838 jpeg_component_info * comp_info = dinfo->comp_info;
873 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
875 dinfo->raw_data_out = TRUE;
876 if (!jpeg_start_decompress(dinfo)) {
883 SkASSERT(is_yuv_supported(dinfo));
888 SkASSERT((uint32_t) sizeInfo.fSizes[SkYUVSizeInfo::kY].width() == dinfo->output_width &&
889 (uint32_t) sizeInfo.fSizes[SkYUVSizeInfo::kY].height() == dinfo->output_height);
904 int numYRowsPerBlock = DCTSIZE * dinfo->comp_info[0].v_samp_factor;
926 const int numIters = dinfo->output_height / numRowsPerBlock;
928 JDIMENSION linesRead = jpeg_read_raw_data(dinfo, yuv, numRowsPerBlock);
944 uint32_t remainingRows = dinfo->output_height - dinfo->output_scanline;
945 SkASSERT(remainingRows == dinfo->output_height % numRowsPerBlock);
946 SkASSERT(dinfo->output_scanline == numIters * numRowsPerBlock);
956 int remainingUVRows = dinfo->comp_info[1].downsampled_height - DCTSIZE * numIters;
962 JDIMENSION linesRead = jpeg_read_raw_data(dinfo, yuv, numRowsPerBlock);