Lines Matching refs:dinfo
47 if (JPEG_HEADER_OK != jpeg_read_header(decoderMgr->dinfo(), true)) {
56 const SkImageInfo& imageInfo = SkImageInfo::Make(decoderMgr->dinfo()->image_width,
57 decoderMgr->dinfo()->image_height, colorType, kOpaque_SkAlphaType);
82 , fReadyState(decoderMgr->dinfo()->global_state)
90 static size_t get_row_bytes(const j_decompress_ptr dinfo) {
92 const size_t colorBytes = (dinfo->out_color_space == JCS_RGB565) ? 2 :
93 dinfo->out_color_components;
95 const size_t colorBytes = dinfo->out_color_components;
97 return dinfo->output_width * colorBytes;
107 void calc_output_dimensions(jpeg_decompress_struct* dinfo, unsigned int num, unsigned int denom) {
108 dinfo->num_components = 0;
109 dinfo->scale_num = num;
110 dinfo->scale_denom = denom;
111 jpeg_calc_output_dimensions(dinfo);
141 jpeg_decompress_struct dinfo;
142 sk_bzero(&dinfo, sizeof(dinfo));
143 dinfo.image_width = this->getInfo().width();
144 dinfo.image_height = this->getInfo().height();
145 dinfo.global_state = fReadyState;
146 calc_output_dimensions(&dinfo, num, denom);
149 return SkISize::Make(dinfo.output_width, dinfo.output_height);
190 J_COLOR_SPACE colorSpace = fDecoderMgr->dinfo()->jpeg_color_space;
197 fDecoderMgr->dinfo()->out_color_space = JCS_CMYK;
203 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
205 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_BGRA;
208 fDecoderMgr->dinfo()->out_color_space = JCS_RGB;
214 fDecoderMgr->dinfo()->out_color_space = JCS_CMYK;
217 fDecoderMgr->dinfo()->dither_mode = JDITHER_NONE;
218 fDecoderMgr->dinfo()->out_color_space = JCS_RGB565;
220 fDecoderMgr->dinfo()->out_color_space = JCS_RGB;
230 fDecoderMgr->dinfo()->out_color_space = JCS_GRAYSCALE;
252 jpeg_decompress_struct dinfo;
253 sk_bzero(&dinfo, sizeof(dinfo));
254 dinfo.image_width = this->getInfo().width();
255 dinfo.image_height = this->getInfo().height();
256 dinfo.global_state = fReadyState;
261 calc_output_dimensions(&dinfo, num, denom);
262 while (dinfo.output_width != dstWidth || dinfo.output_height != dstHeight) {
265 if (1 == num || dstWidth > dinfo.output_width || dstHeight > dinfo.output_height) {
271 calc_output_dimensions(&dinfo, num, denom);
274 fDecoderMgr->dinfo()->scale_num = num;
275 fDecoderMgr->dinfo()->scale_denom = denom;
292 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
305 if (!jpeg_start_decompress(dinfo)) {
311 SkASSERT(1 == dinfo->rec_outbuf_height);
313 J_COLOR_SPACE colorSpace = dinfo->out_color_space;
332 uint32_t lines = jpeg_read_scanlines(dinfo, &dstRow, 1);
356 if (JCS_CMYK == fDecoderMgr->dinfo()->out_color_space) {
377 if (JCS_RGB == fDecoderMgr->dinfo()->out_color_space) {
392 fStorage.reset(get_row_bytes(fDecoderMgr->dinfo()));
420 if (!jpeg_start_decompress(fDecoderMgr->dinfo())) {
439 jpeg_crop_scanline(fDecoderMgr->dinfo(), &startX, &width);
468 if (!fSwizzler && JCS_CMYK == fDecoderMgr->dinfo
474 J_COLOR_SPACE colorSpace = fDecoderMgr->dinfo()->out_color_space;
490 size_t srcRowBytes = get_row_bytes(fDecoderMgr->dinfo());
502 uint32_t rowsDecoded = jpeg_read_scanlines(fDecoderMgr->dinfo(), &dstRow, 1);
505 fDecoderMgr->dinfo()->output_scanline = this->dstInfo().height();
527 return (uint32_t) count == jpeg_skip_scanlines(fDecoderMgr->dinfo(), count);
530 fStorage.reset(get_row_bytes(fDecoderMgr->dinfo()));
535 if (1 != jpeg_read_scanlines(fDecoderMgr->dinfo(), &fSrcRow, 1)) {
543 static bool is_yuv_supported(jpeg_decompress_struct* dinfo) {
545 SkASSERT(dinfo->scale_num == dinfo->scale_denom);
550 if (JCS_YCbCr != dinfo->jpeg_color_space) {
554 SkASSERT(3 == dinfo->num_components);
555 SkASSERT(dinfo->comp_info);
572 if (!(1 == dinfo->comp_info[1].h_samp_factor) &&
573 (1 == dinfo->comp_info[1].v_samp_factor) &&
574 (1 == dinfo->comp_info[2].h_samp_factor) &&
575 (1 == dinfo->comp_info[2].v_samp_factor)) {
587 int hSampY = dinfo->comp_info[0].h_samp_factor;
588 int vSampY = dinfo->comp_info[0].v_samp_factor;
598 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
599 if (!is_yuv_supported(dinfo)) {
603 sizeInfo->fYSize.set(dinfo->comp_info[0].downsampled_width,
604 dinfo->comp_info[0].downsampled_height);
605 sizeInfo->fUSize.set(dinfo->comp_info[1].downsampled_width,
606 dinfo->comp_info[1].downsampled_height);
607 sizeInfo->fVSize.set(dinfo->comp_info[2].downsampled_width,
608 dinfo->comp_info[2].downsampled_height);
609 sizeInfo->fYWidthBytes = dinfo->comp_info[0].width_in_blocks * DCTSIZE;
610 sizeInfo->fUWidthBytes = dinfo->comp_info[1].width_in_blocks * DCTSIZE;
611 sizeInfo->fVWidthBytes = dinfo->comp_info[2].width_in_blocks * DCTSIZE;
640 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
642 dinfo->raw_data_out = TRUE;
643 if (!jpeg_start_decompress(dinfo)) {
650 SkASSERT(is_yuv_supported(dinfo));
655 SkASSERT((uint32_t) sizeInfo.fYSize.width() == dinfo->output_width &&
656 (uint32_t) sizeInfo.fYSize.height() == dinfo->output_height);
671 int numYRowsPerBlock = DCTSIZE * dinfo->comp_info[0].v_samp_factor;
690 const int numIters = dinfo->output_height / numRowsPerBlock;
692 JDIMENSION linesRead = jpeg_read_raw_data(dinfo, yuv, numRowsPerBlock);
708 uint32_t remainingRows = dinfo->output_height - dinfo->output_scanline;
709 SkASSERT(remainingRows == dinfo->output_height % numRowsPerBlock);
710 SkASSERT(dinfo->output_scanline == numIters * numRowsPerBlock);
720 int remainingUVRows = dinfo->comp_info[1].downsampled_height - DCTSIZE * numIters;
726 JDIMENSION linesRead = jpeg_read_raw_data(dinfo, yuv, numRowsPerBlock);