Lines Matching refs:dinfo

71 static SkEncodedOrigin get_exif_orientation(jpeg_decompress_struct* dinfo) {
73 for (jpeg_marker_struct* marker = dinfo->marker_list; marker; marker = marker->next) {
96 static std::unique_ptr<SkEncodedInfo::ICCProfile> read_color_profile(jpeg_decompress_struct* dinfo)
105 for (jpeg_marker_struct* marker = dinfo->marker_list; marker; marker = marker->next) {
175 auto* dinfo = decoderMgr->dinfo();
181 jpeg_save_markers(dinfo, kExifMarker, 0xFFFF);
182 jpeg_save_markers(dinfo, kICCMarker, 0xFFFF);
183 jpeg_save_markers(dinfo, JPEG_APP0, 0xFFFF);
184 jpeg_save_markers(dinfo, kApp3Marker, 0xFFFF);
185 jpeg_save_markers(dinfo, kApp4Marker, 0xFFFF);
186 jpeg_save_markers(dinfo, kApp5Marker, 0xFFFF);
187 jpeg_save_markers(dinfo, kApp6Marker, 0xFFFF);
188 jpeg_save_markers(dinfo, kApp7Marker, 0xFFFF);
189 jpeg_save_markers(dinfo, kApp8Marker, 0xFFFF);
190 jpeg_save_markers(dinfo, kApp9Marker, 0xFFFF);
191 jpeg_save_markers(dinfo, kApp10Marker, 0xFFFF);
192 jpeg_save_markers(dinfo, kApp11Marker, 0xFFFF);
193 jpeg_save_markers(dinfo, kApp12Marker, 0xFFFF);
194 jpeg_save_markers(dinfo, kApp13Marker, 0xFFFF);
195 jpeg_save_markers(dinfo, kApp14Marker, 0xFFFF);
196 jpeg_save_markers(dinfo, kApp15Marker, 0xFFFF);
200 switch (jpeg_read_header(dinfo, true)) {
216 SkEncodedOrigin orientation = get_exif_orientation(dinfo);
217 auto profile = read_color_profile(dinfo);
220 switch (decoderMgr->dinfo()->jpeg_color_space) {
245 SkEncodedInfo info = SkEncodedInfo::Make(dinfo->image_width, dinfo->image_height,
281 , fReadyState(decoderMgr->dinfo()->global_state)
290 static size_t get_row_bytes(const j_decompress_ptr dinfo) {
291 const size_t colorBytes = (dinfo->out_color_space == JCS_RGB565) ? 2 :
292 dinfo->out_color_components;
293 return dinfo->output_width * colorBytes;
303 void calc_output_dimensions(jpeg_decompress_struct* dinfo, unsigned int num, unsigned int denom) {
304 dinfo->num_components = 0;
305 dinfo->scale_num = num;
306 dinfo->scale_denom = denom;
307 jpeg_calc_output_dimensions(dinfo);
337 jpeg_decompress_struct dinfo;
338 sk_bzero(&dinfo, sizeof(dinfo));
339 dinfo.image_width = this->dimensions().width();
340 dinfo.image_height = this->dimensions().height();
341 dinfo.global_state = fReadyState;
342 calc_output_dimensions(&dinfo, num, denom);
345 return SkISize::Make(dinfo.output_width, dinfo.output_height);
377 J_COLOR_SPACE encodedColorType = fDecoderMgr->dinfo()->jpeg_color_space;
382 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
388 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
390 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_BGRA;
395 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
397 fDecoderMgr->dinfo()->dither_mode = JDITHER_NONE;
398 fDecoderMgr->dinfo()->out_color_space = JCS_RGB565;
407 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
409 fDecoderMgr->dinfo()->out_color_space = JCS_GRAYSCALE;
414 fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
423 fDecoderMgr->dinfo()->out_color_space = JCS_CMYK;
444 jpeg_decompress_struct dinfo;
445 sk_bzero(&dinfo, sizeof(dinfo));
446 dinfo.image_width = this->dimensions().width();
447 dinfo.image_height = this->dimensions().height();
448 dinfo.global_state = fReadyState;
453 calc_output_dimensions(&dinfo, num, denom);
454 while (dinfo.output_width != dstWidth || dinfo.output_height != dstHeight) {
457 if (1 == num || dstWidth > dinfo.output_width || dstHeight > dinfo.output_height) {
463 calc_output_dimensions(&dinfo, num, denom);
466 fDecoderMgr->dinfo()->scale_num = num;
467 fDecoderMgr->dinfo()->scale_denom = denom;
510 uint32_t lines = jpeg_read_scanlines(fDecoderMgr->dinfo(), &decodeDst, 1);
561 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
569 if (!jpeg_start_decompress(dinfo)) {
575 SkASSERT(1 == dinfo->rec_outbuf_height);
577 if (needs_swizzler_to_convert_from_cmyk(dinfo->out_color_space,
600 swizzleBytes = get_row_bytes(fDecoderMgr->dinfo());
649 switch (fDecoderMgr->dinfo()->out_color_space) {
677 fDecoderMgr->dinfo()->out_color_space, this->getEncodedInfo().profile(),
695 if (!jpeg_start_decompress(fDecoderMgr->dinfo())) {
701 fDecoderMgr->dinfo()->out_color_space, this->getEncodedInfo().profile(),
712 jpeg_crop_scanline(fDecoderMgr->dinfo(), &startX, &width);
756 fDecoderMgr->dinfo()->output_scanline = this->dstInfo().height();
769 return (uint32_t) count == jpeg_skip_scanlines(fDecoderMgr->dinfo(), count);
772 static bool is_yuv_supported(const jpeg_decompress_struct* dinfo,
777 SkASSERT(dinfo->scale_num == dinfo->scale_denom);
782 if (JCS_YCbCr != dinfo->jpeg_color_space) {
786 SkASSERT(3 == dinfo->num_components);
787 SkASSERT(dinfo->comp_info);
804 if ((1 != dinfo->comp_info[1].h_samp_factor) ||
805 (1 != dinfo->comp_info[1].v_samp_factor) ||
806 (1 != dinfo->comp_info[2].h_samp_factor) ||
807 (1 != dinfo->comp_info[2].v_samp_factor))
820 int hSampY = dinfo->comp_info[0].h_samp_factor;
821 int vSampY = dinfo->comp_info[0].v_samp_factor;
822 SkASSERT(hSampY == dinfo->max_h_samp_factor);
823 SkASSERT(vSampY == dinfo->max_v_samp_factor);
851 rowBytes[i] = dinfo->comp_info[i].width_in_blocks * DCTSIZE;
867 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
868 return is_yuv_supported(dinfo, *this, &supportedDataTypes, yuvaPixmapInfo);
873 jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();
874 if (!is_yuv_supported(dinfo, *this, nullptr, nullptr)) {
883 dinfo->raw_data_out = TRUE;
884 if (!jpeg_start_decompress(dinfo)) {
897 SkASSERT(is_yuv_supported(dinfo, *this, nullptr, &info));
919 int numYRowsPerBlock = DCTSIZE * dinfo->comp_info[0].v_samp_factor;
941 const int numIters = dinfo->output_height / numRowsPerBlock;
943 JDIMENSION linesRead = jpeg_read_raw_data(dinfo, yuv, numRowsPerBlock);
959 uint32_t remainingRows = dinfo->output_height - dinfo->output_scanline;
960 SkASSERT(remainingRows == dinfo->output_height % numRowsPerBlock);
961 SkASSERT(dinfo->output_scanline == numIters * numRowsPerBlock);
971 int remainingUVRows = dinfo->comp_info[1].downsampled_height - DCTSIZE * numIters;
977 JDIMENSION linesRead = jpeg_read_raw_data(dinfo, yuv, numRowsPerBlock);
1004 jpeg_decompress_struct* dinfo = decoderMgr.dinfo();
1005 jpeg_save_markers(dinfo, kExifMarker, 0xFFFF);
1006 jpeg_save_markers(dinfo, kICCMarker, 0xFFFF);
1007 if (JPEG_HEADER_OK != jpeg_read_header(dinfo, true)) {
1018 *orientation = get_exif_orientation(dinfo);
1021 *size = {SkToS32(dinfo->image_width), SkToS32(dinfo->image_height)};