Cleanup: remove historic, blender-only jpeg io
authorCampbell Barton <ideasman42@gmail.com>
Wed, 14 Oct 2015 09:13:57 +0000 (20:13 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 14 Oct 2015 09:18:18 +0000 (20:18 +1100)
source/blender/imbuf/IMB_imbuf_types.h
source/blender/imbuf/intern/jpeg.c

index 08ce9c0469bf8b77d7f9aed090c67357b7f7655e..4de07bf7559e5b832cccee66cad9853cb00969fb 100644 (file)
@@ -124,12 +124,6 @@ enum eImbTypes {
 
 #define RAWTGA         1
 
-#define JPG_STD                0
-#define JPG_VID                1
-#define JPG_JST                2
-#define JPG_MAX                3
-#define JPG_MSK                0x03
-
 #ifdef WITH_TIFF
 #define TIF_16BIT              (1 << 8 )
 #endif
index ff2a9767386cdc106f87ac66cb922872dc7310a1..77e20a46ab2f9e5d82da470c78c269cb5ec4b38b 100644 (file)
 #include "IMB_colormanagement.h"
 #include "IMB_colormanagement_intern.h"
 
-// #define IS_jpg(x)       (x->ftype & JPG) // UNUSED
-#define IS_stdjpg(x)    ((x->foptions.flag & JPG_MSK) == JPG_STD)
-// #define IS_vidjpg(x)    ((x->foptions & JPG_MSK) == JPG_VID) // UNUSED
-#define IS_jstjpg(x)    ((x->foptions.flag & JPG_MSK) == JPG_JST)
-#define IS_maxjpg(x)    ((x->foptions.flag & JPG_MSK) == JPG_MAX)
-
 /* the types are from the jpeg lib */
 static void jpeg_error(j_common_ptr cinfo) ATTR_NORETURN;
 static void init_source(j_decompress_ptr cinfo);
@@ -70,20 +64,6 @@ static void memory_source(j_decompress_ptr cinfo, const unsigned char *buffer, s
 static boolean handle_app1(j_decompress_ptr cinfo);
 static ImBuf *ibJpegImageFromCinfo(struct jpeg_decompress_struct *cinfo, int flags);
 
-
-/*
- * In principle there are 4 jpeg formats.
- *
- * 1. jpeg - standard printing, u & v at quarter of resolution
- * 2. jvid - standard video, u & v half resolution, frame not interlaced
- *
- * type 3 is unsupported as of jul 05 2000 Frank.
- *
- * 3. jstr - as 2, but written in 2 separate fields
- *
- * 4. jmax - no scaling in the components
- */
-
 static int jpeg_default_quality;
 static int ibuf_foptions;
 
@@ -304,14 +284,6 @@ static ImBuf *ibJpegImageFromCinfo(struct jpeg_decompress_struct *cinfo, int fla
 
                jpeg_start_decompress(cinfo);
 
-               if (ibuf_foptions == 0) {
-                       ibuf_foptions = JPG_STD;
-                       if (cinfo->max_v_samp_factor == 1) {
-                               if (cinfo->max_h_samp_factor == 1) ibuf_foptions = JPG_MAX;
-                               else ibuf_foptions = JPG_VID;
-                       }
-               }
-
                if (flags & IB_test) {
                        jpeg_abort_decompress(cinfo);
                        ibuf = IMB_allocImBuf(x, y, 8 * depth, 0);
@@ -640,124 +612,9 @@ static int save_stdjpeg(const char *name, struct ImBuf *ibuf)
        return 1;
 }
 
-
-static int save_vidjpeg(const char *name, struct ImBuf *ibuf)
-{
-       FILE *outfile;
-       struct jpeg_compress_struct _cinfo, *cinfo = &_cinfo;
-       struct my_error_mgr jerr;
-
-       if ((outfile = BLI_fopen(name, "wb")) == NULL) return 0;
-       jpeg_default_quality = 90;
-
-       cinfo->err = jpeg_std_error(&jerr.pub);
-       jerr.pub.error_exit = jpeg_error;
-
-       /* Establish the setjmp return context for jpeg_error to use. */
-       if (setjmp(jerr.setjmp_buffer)) {
-               /* If we get here, the JPEG code has signaled an error.
-                * We need to clean up the JPEG object, close the input file, and return.
-                */
-               jpeg_destroy_compress(cinfo);
-               fclose(outfile);
-               remove(name);
-               return 0;
-       }
-
-       init_jpeg(outfile, cinfo, ibuf);
-
-       /* adjust scaling factors */
-       if (cinfo->in_color_space == JCS_RGB) {
-               cinfo->comp_info[0].h_samp_factor = 2;
-               cinfo->comp_info[0].v_samp_factor = 1;
-       }
-
-       write_jpeg(cinfo, ibuf);
-
-       fclose(outfile);
-       jpeg_destroy_compress(cinfo);
-
-       return 1;
-}
-
-static int save_jstjpeg(const char *name, struct ImBuf *ibuf)
-{
-       char fieldname[1024];
-       struct ImBuf *tbuf;
-       int oldy, returnval;
-
-       tbuf = IMB_allocImBuf(ibuf->x, ibuf->y / 2, 24, IB_rect);
-       tbuf->ftype = ibuf->ftype;
-       tbuf->foptions = ibuf->foptions;
-       tbuf->flags = ibuf->flags;
-       
-       oldy = ibuf->y;
-       ibuf->x *= 2;
-       ibuf->y /= 2;
-
-       IMB_rectcpy(tbuf, ibuf, 0, 0, 0, 0, ibuf->x, ibuf->y);
-       sprintf(fieldname, "%s.jf0", name);
-
-       returnval = save_vidjpeg(fieldname, tbuf);
-       if (returnval == 1) {
-               IMB_rectcpy(tbuf, ibuf, 0, 0, tbuf->x, 0, ibuf->x, ibuf->y);
-               sprintf(fieldname, "%s.jf1", name);
-               returnval = save_vidjpeg(fieldname, tbuf);
-       }
-
-       ibuf->y = oldy;
-       ibuf->x /= 2;
-       IMB_freeImBuf(tbuf);
-
-       return returnval;
-}
-
-static int save_maxjpeg(const char *name, struct ImBuf *ibuf)
-{
-       FILE *outfile;
-       struct jpeg_compress_struct _cinfo, *cinfo = &_cinfo;
-       struct my_error_mgr jerr;
-
-       if ((outfile = BLI_fopen(name, "wb")) == NULL) return 0;
-       jpeg_default_quality = 100;
-
-       cinfo->err = jpeg_std_error(&jerr.pub);
-       jerr.pub.error_exit = jpeg_error;
-
-       /* Establish the setjmp return context for jpeg_error to use. */
-       if (setjmp(jerr.setjmp_buffer)) {
-               /* If we get here, the JPEG code has signaled an error.
-                * We need to clean up the JPEG object, close the input file, and return.
-                */
-               jpeg_destroy_compress(cinfo);
-               fclose(outfile);
-               remove(name);
-               return 0;
-       }
-
-       init_jpeg(outfile, cinfo, ibuf);
-
-       /* adjust scaling factors */
-       if (cinfo->in_color_space == JCS_RGB) {
-               cinfo->comp_info[0].h_samp_factor = 1;
-               cinfo->comp_info[0].v_samp_factor = 1;
-       }
-
-       write_jpeg(cinfo, ibuf);
-
-       fclose(outfile);
-       jpeg_destroy_compress(cinfo);
-
-       return 1;
-}
-
 int imb_savejpeg(struct ImBuf *ibuf, const char *name, int flags)
 {
        
        ibuf->flags = flags;
-       if (IS_stdjpg(ibuf)) return save_stdjpeg(name, ibuf);
-       if (IS_jstjpg(ibuf)) return save_jstjpeg(name, ibuf);
-       if (IS_maxjpg(ibuf)) return save_maxjpeg(name, ibuf);
-       return save_vidjpeg(name, ibuf);
+       return save_stdjpeg(name, ibuf);
 }
-