# HG changeset patch # User iive # Date 1274397461 0 # Node ID d1f5069bef2550df9a7c7a8a70ec55da1e2a8ac9 # Parent 8639a950e8564ccdd2f3b004b7114ed0950a00e7 Fix compilation broken by FFmpeg-r23201 that changed the api of error logging. Also fix evaluation after FFmpeg-r23149 "change order of parameters". Let the filters fail if evaluation can't be done. diff -r 8639a950e856 -r d1f5069bef25 libmpcodecs/vf_geq.c --- a/libmpcodecs/vf_geq.c Wed May 19 22:56:41 2010 +0000 +++ b/libmpcodecs/vf_geq.c Thu May 20 23:17:41 2010 +0000 @@ -178,11 +178,11 @@ plane==0 ? lum : (plane==1 ? cb : cr), NULL }; - char * a; - vf->priv->e[plane] = ff_parse_expr(eq[plane], const_names, NULL, NULL, func2, func2_names, &a); + vf->priv->e[plane] = ff_parse_expr(eq[plane], const_names, NULL, NULL, func2_names, func2, 0, NULL); if (!vf->priv->e[plane]) { - mp_msg(MSGT_VFILTER, MSGL_ERR, "geq: error loading equation `%s': %s\n", eq[plane], a); + mp_msg(MSGT_VFILTER, MSGL_ERR, "geq: error loading equation `%s'\n", eq[plane]); + return 0; } } diff -r 8639a950e856 -r d1f5069bef25 libmpcodecs/vf_qp.c --- a/libmpcodecs/vf_qp.c Wed May 19 22:56:41 2010 +0000 +++ b/libmpcodecs/vf_qp.c Thu May 20 23:17:41 2010 +0000 @@ -66,11 +66,15 @@ "qp", NULL }; + double temp_val; - const char *error = NULL; - vf->priv->lut[i+129]= lrintf(ff_parse_and_eval_expr(vf->priv->eq, const_values, const_names, NULL, NULL, NULL, NULL, NULL, &error)); - if (error) - mp_msg(MSGT_VFILTER, MSGL_ERR, "qp: Error evaluating \"%s\": %s\n", vf->priv->eq, error); + temp_val= ff_parse_and_eval_expr(vf->priv->eq, const_names, const_values, NULL, NULL, NULL, NULL, NULL, 0, NULL); + + if (isnan(temp_val)){ + mp_msg(MSGT_VFILTER, MSGL_ERR, "qp: Error evaluating \"%s\" \n", vf->priv->eq); + return 0; + } + vf->priv->lut[i+129]= lrintf(temp_val); } return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt);