mirror of https://github.com/mpv-player/mpv
Handle chroma texture size becoming 0, e.g. due to bad rounding.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31143 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
668854c7dc
commit
6f28f44c8c
|
@ -528,8 +528,11 @@ void glCreateClearTex(GLenum target, GLenum fmt, GLenum format, GLenum type, GLi
|
||||||
int w, int h, unsigned char val) {
|
int w, int h, unsigned char val) {
|
||||||
GLfloat fval = (GLfloat)val / 255.0;
|
GLfloat fval = (GLfloat)val / 255.0;
|
||||||
GLfloat border[4] = {fval, fval, fval, fval};
|
GLfloat border[4] = {fval, fval, fval, fval};
|
||||||
int stride = w * glFmt2bpp(format, type);
|
int stride;
|
||||||
char *init;
|
char *init;
|
||||||
|
if (w == 0) w = 1;
|
||||||
|
if (h == 0) h = 1;
|
||||||
|
stride = w * glFmt2bpp(format, type);
|
||||||
if (!stride) return;
|
if (!stride) return;
|
||||||
init = malloc(stride * h);
|
init = malloc(stride * h);
|
||||||
memset(init, val, stride * h);
|
memset(init, val, stride * h);
|
||||||
|
@ -1421,6 +1424,8 @@ int glAutodetectYUVConversion(void) {
|
||||||
void glSetupYUVConversion(gl_conversion_params_t *params) {
|
void glSetupYUVConversion(gl_conversion_params_t *params) {
|
||||||
float uvcos = params->csp_params.saturation * cos(params->csp_params.hue);
|
float uvcos = params->csp_params.saturation * cos(params->csp_params.hue);
|
||||||
float uvsin = params->csp_params.saturation * sin(params->csp_params.hue);
|
float uvsin = params->csp_params.saturation * sin(params->csp_params.hue);
|
||||||
|
if (params->chrom_texw == 0) params->chrom_texw = 1;
|
||||||
|
if (params->chrom_texh == 0) params->chrom_texh = 1;
|
||||||
switch (YUV_CONVERSION(params->type)) {
|
switch (YUV_CONVERSION(params->type)) {
|
||||||
case YUV_CONVERSION_COMBINERS:
|
case YUV_CONVERSION_COMBINERS:
|
||||||
glSetupYUVCombiners(uvcos, uvsin);
|
glSetupYUVCombiners(uvcos, uvsin);
|
||||||
|
|
Loading…
Reference in New Issue