From ce9fcc0730882e7f8d669e1b1bd7efbdfc998246 Mon Sep 17 00:00:00 2001 From: cigaes Date: Mon, 18 Oct 2010 20:44:04 +0000 Subject: vo_gl: Move the read_pnm function into a separate file git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32513 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/gl_common.c | 61 +------------------------------------------------------ 1 file changed, 1 insertion(+), 60 deletions(-) (limited to 'libvo') diff --git a/libvo/gl_common.c b/libvo/gl_common.c index 048f3185ce..8d0036ef0d 100644 --- a/libvo/gl_common.c +++ b/libvo/gl_common.c @@ -41,6 +41,7 @@ #include "gl_common.h" #include "csputils.h" #include "aspect.h" +#include "pnm_loader.h" void (GLAPIENTRY *mpglBegin)(GLenum); void (GLAPIENTRY *mpglEnd)(void); @@ -558,66 +559,6 @@ void glCreateClearTex(GLenum target, GLenum fmt, GLenum format, GLenum type, GLi free(init); } -/** - * \brief skips whitespace and comments - * \param f file to read from - */ -static void ppm_skip(FILE *f) { - int c, comment = 0; - do { - c = fgetc(f); - if (c == '#') - comment = 1; - if (c == '\n') - comment = 0; - } while (c != EOF && (isspace(c) || comment)); - if (c != EOF) - ungetc(c, f); -} - -#define MAXDIM (16 * 1024) - -static uint8_t *read_pnm(FILE *f, int *width, int *height, - int *bytes_per_pixel, int *maxval) { - uint8_t *data; - int type; - unsigned w, h, m, val, bpp; - *width = *height = *bytes_per_pixel = *maxval = 0; - ppm_skip(f); - if (fgetc(f) != 'P') - return NULL; - type = fgetc(f); - if (type != '5' && type != '6') - return NULL; - ppm_skip(f); - if (fscanf(f, "%u", &w) != 1) - return NULL; - ppm_skip(f); - if (fscanf(f, "%u", &h) != 1) - return NULL; - ppm_skip(f); - if (fscanf(f, "%u", &m) != 1) - return NULL; - val = fgetc(f); - if (!isspace(val)) - return NULL; - if (w > MAXDIM || h > MAXDIM) - return NULL; - bpp = (m > 255) ? 2 : 1; - if (type == '6') - bpp *= 3; - data = malloc(w * h * bpp); - if (fread(data, w * bpp, h, f) != h) { - free(data); - return NULL; - } - *width = w; - *height = h; - *bytes_per_pixel = bpp; - *maxval = m; - return data; -} - /** * \brief creates a texture from a PPM file * \param target texture taget, usually GL_TEXTURE_2D -- cgit v1.2.3