[480/906] win32 builds: add glshader filter sources to vs9 and codeblocks

Also fix some warnings from msvc9 and mingw-3.4.5
This commit is contained in:
Julien Isorce 2011-11-21 16:46:51 +01:00 committed by Matthew Waters
parent e44c1040fe
commit 9e535a0410
3 changed files with 63 additions and 61 deletions

View file

@ -20,8 +20,12 @@
#include "gstglshadervariables.h" #include "gstglshadervariables.h"
#ifdef G_OS_WIN32 #if !defined(strtok_r) && defined(G_OS_WIN32)
#if defined(_MSC_VER)
#define strtok_r strtok_s #define strtok_r strtok_s
#else
#define strtok_r(s,d,p) strtok(s,d)
#endif
#endif #endif
#define trimleft(s,chars) while(s[0] && strchr(chars,s[0])) ++s; #define trimleft(s,chars) while(s[0] && strchr(chars,s[0])) ++s;
@ -349,7 +353,7 @@ parsename (char **varname, int *arraysize, char **saveptr)
{ {
char *t; char *t;
char *i; char *i;
int j; gint j;
*arraysize = 0; *arraysize = 0;
t = strtok_r (0, "=", saveptr); t = strtok_r (0, "=", saveptr);
@ -363,7 +367,7 @@ parsename (char **varname, int *arraysize, char **saveptr)
if (!i) { // not an array if (!i) { // not an array
if (!t[0]) if (!t[0])
return t; return t;
for (j = 0; j < strlen (t); ++j) { for (j = 0; j < (gint) strlen (t); ++j) {
if (!strchr (VALID_VARNAME_CHARS, t[j])) if (!strchr (VALID_VARNAME_CHARS, t[j]))
return t + j; return t + j;
} }
@ -380,7 +384,7 @@ parsename (char **varname, int *arraysize, char **saveptr)
if (!t[0]) if (!t[0])
return t; return t;
for (j = 0; j < strlen (t); ++j) { for (j = 0; j < (gint) strlen (t); ++j) {
if (!strchr (VALID_VARNAME_CHARS, t[j])) if (!strchr (VALID_VARNAME_CHARS, t[j]))
return t; return t;
} }
@ -656,7 +660,7 @@ parsevalue (char *value, char *_saveptr, struct gst_gl_shadervariable_desc *ret)
case _int: case _int:
ret->count = (ret->arraysize) ? ret->arraysize : 1; ret->count = (ret->arraysize) ? ret->arraysize : 1;
if (ret->count == 1) { if (ret->count == 1) {
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("-0123456789", value[j])) if (!strchr ("-0123456789", value[j]))
return _saveptr + j; return _saveptr + j;
} }
@ -677,7 +681,7 @@ parsevalue (char *value, char *_saveptr, struct gst_gl_shadervariable_desc *ret)
if (!t[0]) if (!t[0])
return _saveptr + (saveptr - t); return _saveptr + (saveptr - t);
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("-0123456789", value[j])) if (!strchr ("-0123456789", value[j]))
return _saveptr + (saveptr - t) + j; return _saveptr + (saveptr - t) + j;
} }
@ -691,7 +695,7 @@ parsevalue (char *value, char *_saveptr, struct gst_gl_shadervariable_desc *ret)
case _uint: case _uint:
ret->count = (ret->arraysize) ? ret->arraysize : 1; ret->count = (ret->arraysize) ? ret->arraysize : 1;
if (ret->count == 1) { if (ret->count == 1) {
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("0123456789", value[j])) if (!strchr ("0123456789", value[j]))
return _saveptr + j; return _saveptr + j;
} }
@ -712,7 +716,7 @@ parsevalue (char *value, char *_saveptr, struct gst_gl_shadervariable_desc *ret)
if (!t[0]) if (!t[0])
return _saveptr + (saveptr - t); return _saveptr + (saveptr - t);
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("0123456789", value[j])) if (!strchr ("0123456789", value[j]))
return _saveptr + (saveptr - t) + j; return _saveptr + (saveptr - t) + j;
} }
@ -726,7 +730,7 @@ parsevalue (char *value, char *_saveptr, struct gst_gl_shadervariable_desc *ret)
case _float: case _float:
ret->count = (ret->arraysize) ? ret->arraysize : 1; ret->count = (ret->arraysize) ? ret->arraysize : 1;
if (ret->count == 1) { if (ret->count == 1) {
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("0123456789.-", value[j])) if (!strchr ("0123456789.-", value[j]))
return _saveptr + j; return _saveptr + j;
} }
@ -747,7 +751,7 @@ parsevalue (char *value, char *_saveptr, struct gst_gl_shadervariable_desc *ret)
if (!t[0]) if (!t[0])
return _saveptr + (saveptr - t); return _saveptr + (saveptr - t);
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("0123456789.-", value[j])) if (!strchr ("0123456789.-", value[j]))
return _saveptr + (saveptr - t) + j; return _saveptr + (saveptr - t) + j;
} }
@ -910,7 +914,7 @@ vec_parsevalue (int n, char *value, char *_saveptr,
if (!t[0]) if (!t[0])
return _saveptr + (saveptr - t); return _saveptr + (saveptr - t);
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("0123456789.-", value[j])) if (!strchr ("0123456789.-", value[j]))
return _saveptr + (saveptr - t) + j; return _saveptr + (saveptr - t) + j;
} }
@ -960,7 +964,7 @@ vec_parsevalue (int n, char *value, char *_saveptr,
if (!t[0]) if (!t[0])
return _saveptr + (t - value); return _saveptr + (t - value);
for (j = 0; j < strlen (t); ++j) { for (j = 0; j < (gint) strlen (t); ++j) {
if (!strchr ("0123456789.-", t[j])) if (!strchr ("0123456789.-", t[j]))
return _saveptr + (t - value) + j; return _saveptr + (t - value) + j;
} }
@ -1157,7 +1161,7 @@ ivec_parsevalue (int n, char *value, char *_saveptr,
if (!t[0]) if (!t[0])
return _saveptr + (saveptr - t); return _saveptr + (saveptr - t);
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("0123456789-", value[j])) if (!strchr ("0123456789-", value[j]))
return _saveptr + (saveptr - t) + j; return _saveptr + (saveptr - t) + j;
} }
@ -1207,7 +1211,7 @@ ivec_parsevalue (int n, char *value, char *_saveptr,
if (!t[0]) if (!t[0])
return _saveptr + (t - value); return _saveptr + (t - value);
for (j = 0; j < strlen (t); ++j) { for (j = 0; j < (gint) strlen (t); ++j) {
if (!strchr ("0123456789-", t[j])) if (!strchr ("0123456789-", t[j]))
return _saveptr + (t - value) + j; return _saveptr + (t - value) + j;
} }
@ -1283,7 +1287,7 @@ uvec_parsevalue (int n, char *value, char *_saveptr,
if (!t[0]) if (!t[0])
return _saveptr + (saveptr - t); return _saveptr + (saveptr - t);
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("0123456789", value[j])) if (!strchr ("0123456789", value[j]))
return _saveptr + (saveptr - t) + j; return _saveptr + (saveptr - t) + j;
} }
@ -1333,7 +1337,7 @@ uvec_parsevalue (int n, char *value, char *_saveptr,
if (!t[0]) if (!t[0])
return _saveptr + (t - value); return _saveptr + (t - value);
for (j = 0; j < strlen (t); ++j) { for (j = 0; j < (gint) strlen (t); ++j) {
if (!strchr ("0123456789", t[j])) if (!strchr ("0123456789", t[j]))
return _saveptr + (t - value) + j; return _saveptr + (t - value) + j;
} }
@ -1409,7 +1413,7 @@ mat_parsevalue (int n, int m, char *value, char *_saveptr,
if (!t[0]) if (!t[0])
return _saveptr + (saveptr - t); return _saveptr + (saveptr - t);
for (j = 0; j < strlen (value); ++j) { for (j = 0; j < (gint) strlen (value); ++j) {
if (!strchr ("0123456789.-", value[j])) if (!strchr ("0123456789.-", value[j]))
return _saveptr + (saveptr - t) + j; return _saveptr + (saveptr - t) + j;
} }
@ -1459,7 +1463,7 @@ mat_parsevalue (int n, int m, char *value, char *_saveptr,
if (!t[0]) if (!t[0])
return _saveptr + (t - value); return _saveptr + (t - value);
for (j = 0; j < strlen (t); ++j) { for (j = 0; j < (gint) strlen (t); ++j) {
if (!strchr ("0123456789.-", t[j])) if (!strchr ("0123456789.-", t[j]))
return _saveptr + (t - value) + j; return _saveptr + (t - value) + j;
} }

View file

@ -258,13 +258,13 @@ gst_gl_filtershader_load_file (char *filename, char **storage)
{ {
size_t count; size_t count;
ssize_t bytes; size_t bytes;
int f; FILE *f;
// read the filter from file // read the filter from file
GST_INFO ("loading file: %s", filename); GST_INFO ("loading file: %s", filename);
f = open (filename, O_RDONLY); f = fopen (filename, O_RDONLY);
if (f < 0) { if (f == NULL) {
GST_ERROR ("could not open file: %s", filename); GST_ERROR ("could not open file: %s", filename);
return -1; return -1;
} }
@ -274,22 +274,23 @@ gst_gl_filtershader_load_file (char *filename, char **storage)
*storage = 0; *storage = 0;
} }
count = lseek (f, 0, SEEK_END); count = fseek (f, 0, SEEK_END);
*storage = g_malloc (count + 1); *storage = g_malloc (count + 1);
if (!*storage) { if (!*storage) {
GST_ERROR ("g_malloc failed: %u", count); GST_ERROR ("g_malloc failed: %u", count);
return -1; return -1;
} }
lseek (f, 0, SEEK_SET); fseek (f, 0, SEEK_SET);
bytes = read (f, (void *) *storage, count); bytes = fread ((void *) *storage, sizeof (char), count, f);
if (bytes < 0 || bytes != count) { if (bytes < 0 || bytes != count) {
GST_ERROR ("read failed: %u/%u", bytes, count); GST_ERROR ("read failed: %u/%u", bytes, count);
return -1; return -1;
} }
((char *) *storage)[count] = 0; ((char *) *storage)[count] = 0;
close (f); if (f)
fclose (f);
GST_INFO ("read: %u", bytes); GST_INFO ("read: %u", bytes);
return 0; return 0;
} }

View file

@ -284,46 +284,46 @@ gst_gl_overlay_draw (GstGLOverlay * o, int flag)
width = o->width_window; width = o->width_window;
height = o->height_window; height = o->height_window;
} else if (flag == 0 && o->type_file == 1) { } else if (flag == 0 && o->type_file == 1) {
width = o->width; width = (gfloat) o->width;
height = o->height; height = (gfloat) o->height;
} else if (flag == 0 && o->type_file == 2) { } else if (flag == 0 && o->type_file == 2) {
width = 1.0; width = 1.0f;
height = 1.0; height = 1.0f;
} }
y = (o->type_file == 2 && flag == 0 ? o->ratio_y : -o->ratio_y) + o->posy; y = (o->type_file == 2 && flag == 0 ? o->ratio_y : -o->ratio_y) + o->posy;
glTexCoord3f (0.0f, 0.0f, 0.0f); glTexCoord3f (0.0f, 0.0f, 0.0f);
glVertex3f (-o->ratio_x + o->posx, y, 0.0f); glVertex3f (-o->ratio_x + o->posx, y, 0.0f);
glTexCoord3f (width, 0.0, 0.0); glTexCoord3f (width, 0.0f, 0.0f);
glVertex3f (o->ratio_x + o->posx, y, 0.0f); glVertex3f (o->ratio_x + o->posx, y, 0.0f);
glTexCoord3f (width, height, 0.0); glTexCoord3f (width, height, 0.0f);
y = (o->type_file == 2 && flag == 0 ? -o->ratio_y : o->ratio_y) + o->posy; y = (o->type_file == 2 && flag == 0 ? -o->ratio_y : o->ratio_y) + o->posy;
glVertex3f (o->ratio_x + o->posx, y, 0.0); glVertex3f (o->ratio_x + o->posx, y, 0.0f);
glTexCoord3f (0.0f, height, 0.0f); glTexCoord3f (0.0f, height, 0.0f);
glVertex3f (-o->ratio_x + o->posx, y, 0.0); glVertex3f (-o->ratio_x + o->posx, y, 0.0f);
} }
static void static void
gst_gl_overlay_calc_proportion (GstGLOverlay * o, int flag, float size_texture, gst_gl_overlay_calc_proportion (GstGLOverlay * o, int flag, float size_texture,
float width, float height) float width, float height)
{ {
if ((1.59 < o->ratio_window && o->ratio_window < 1.61 if ((1.59f < o->ratio_window && o->ratio_window < 1.61f
&& 1.77 < o->ratio_texture && o->ratio_texture < 1.78) && 1.77f < o->ratio_texture && o->ratio_texture < 1.78f)
|| (1.3 < o->ratio_window && o->ratio_window < 1.34 || (1.3f < o->ratio_window && o->ratio_window < 1.34f
&& ((1.7 < o->ratio_texture && o->ratio_texture < 1.78) && ((1.7f < o->ratio_texture && o->ratio_texture < 1.78f)
|| (1.59 < o->ratio_texture && o->ratio_texture < 1.61)))) { || (1.59f < o->ratio_texture && o->ratio_texture < 1.61f)))) {
o->ratio_x = o->ratio_window * (gfloat) size_texture / 100.0; o->ratio_x = o->ratio_window * (gfloat) size_texture / 100.0f;
o->ratio_y = o->ratio_y =
(o->ratio_window / width) * height * (gfloat) size_texture / 100.0; (o->ratio_window / width) * height * (gfloat) size_texture / 100.0f;
} else { } else {
o->ratio_x = o->ratio_texture * (gfloat) size_texture / 100.0; o->ratio_x = o->ratio_texture * (gfloat) size_texture / 100.0f;
o->ratio_y = 1.0 * size_texture / 100.0; o->ratio_y = 1.0f * size_texture / 100.0f;
} }
o->posx = o->posx =
((o->ratio_window - o->ratio_x) * ((flag == ((o->ratio_window - o->ratio_x) * ((flag ==
1 ? o->pos_x_video : o->pos_x_png) - 50.0) / 50.0); 1 ? o->pos_x_video : o->pos_x_png) - 50.0f) / 50.0f);
o->posy = o->posy =
(1.0 - o->ratio_y) * (((flag == (1.0f - o->ratio_y) * (((flag ==
1 ? o->pos_y_video : o->pos_y_png) - 50.0) / 50.0); 1 ? o->pos_y_video : o->pos_y_png) - 50.0f) / 50.0f);
} }
static void static void
@ -350,7 +350,8 @@ gst_gl_overlay_load_texture (GstGLOverlay * o, GLuint tex, int flag)
o->ratio_texture = (gfloat) o->width / (gfloat) o->height; o->ratio_texture = (gfloat) o->width / (gfloat) o->height;
if (o->rotate_png == 2) if (o->rotate_png == 2)
glRotatef (o->angle_png, 0, 1, 0); glRotatef (o->angle_png, 0, 1, 0);
gst_gl_overlay_calc_proportion (o, flag, o->size_png, o->width, o->height); gst_gl_overlay_calc_proportion (o, flag, o->size_png, (gfloat) o->width,
(gfloat) o->height);
} }
glBegin (GL_POLYGON); glBegin (GL_POLYGON);
gst_gl_overlay_draw (o, flag); gst_gl_overlay_draw (o, flag);
@ -437,7 +438,7 @@ gst_gl_overlay_set_property (GObject * object, guint prop_id,
overlay->angle_video = g_value_get_int (value); overlay->angle_video = g_value_get_int (value);
break; break;
case PROP_RATIO_VIDEO: case PROP_RATIO_VIDEO:
overlay->ratio_video = g_value_get_int (value); overlay->ratio_video = (gfloat) g_value_get_int (value);
break; break;
/* case PROP_STRETCH: /* case PROP_STRETCH:
overlay->stretch = g_value_get_boolean (value); overlay->stretch = g_value_get_boolean (value);
@ -493,7 +494,7 @@ gst_gl_overlay_get_property (GObject * object, guint prop_id,
g_value_set_int (value, overlay->angle_video); g_value_set_int (value, overlay->angle_video);
break; break;
case PROP_RATIO_VIDEO: case PROP_RATIO_VIDEO:
g_value_set_int (value, overlay->ratio_video); g_value_set_int (value, (gint) overlay->ratio_video);
break; break;
/* case PROP_STRETCH: /* case PROP_STRETCH:
g_value_set_boolean (value, overlay->stretch); g_value_set_boolean (value, overlay->stretch);
@ -510,19 +511,15 @@ gst_gl_overlay_set_caps (GstGLFilter * filter, GstCaps * incaps,
GstCaps * outcaps) GstCaps * outcaps)
{ {
GstGLOverlay *overlay = GST_GL_OVERLAY (filter); GstGLOverlay *overlay = GST_GL_OVERLAY (filter);
gchar *str_caps; GstStructure *s = gst_caps_get_structure (incaps, 0);
GstStructure *structure; gint width = 0;
const GValue *width_value; gint height = 0;
structure = gst_caps_get_structure (incaps, 0); gst_structure_get_int (s, "width", &width);
width_value = gst_structure_get_value (structure, "width"); gst_structure_get_int (s, "height", &height);
str_caps = g_strdup_value_contents (width_value);
overlay->width_window = atof (str_caps); overlay->width_window = (gfloat) width;
g_free (str_caps); overlay->height_window = (gfloat) height;
width_value = gst_structure_get_value (structure, "height");
str_caps = g_strdup_value_contents (width_value);
overlay->height_window = atof (str_caps);
g_free (str_caps);
return TRUE; return TRUE;
} }