PHP_ADD_INCLUDE($MING_INC_DIR)
PHP_ADD_LIBRARY_WITH_PATH(ming, $MING_DIR/$PHP_LIBDIR, MING_SHARED_LIBADD)
+ PHP_CHECK_LIBRARY(ming, SWFPrebuiltClip, [ AC_DEFINE(HAVE_SWFPREBUILTCLIP, 1, [ ]) ], [], [])
+
+ old_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS=-I$MING_INC_DIR
AC_MSG_CHECKING([for destroySWFBlock])
AC_TRY_RUN([
#include "ming.h"
AC_MSG_RESULT([unknown])
])
- PHP_CHECK_LIBRARY(ming, SWFPrebuiltClip, [ AC_DEFINE(HAVE_SWFPREBUILTCLIP, 1, [ ]) ], [], [])
-
dnl Check Ming version (FIXME: if/when ming has some better way to detect the version..)
- old_CPPFLAGS=$CPPFLAGS
- CPPFLAGS=-I$MING_INC_DIR
AC_EGREP_CPP(yes, [
#include <ming.h>
#ifdef SWF_SOUND_COMPRESSION
dnl FIXME: This is now unconditional..better check coming later.
AC_DEFINE(HAVE_MING_ZLIB, 1, [ ])
])
+
+ dnl Check if SWFMovie_output() accepts the 4th parameter
+ AC_TRY_COMPILE([
+#include <ming.h>
+ ], [
+int main(void) { SWFMovie_output(NULL, NULL, NULL, 0); return 0; }
+ ], [
+ AC_DEFINE(HAVE_MING_MOVIE_LEVEL, 1, [ ])
+ ], [])
CPPFLAGS=$old_CPPFLAGS
PHP_NEW_EXTENSION(ming, ming.c, $ext_shared)
PHP_METHOD(swfmovie, output)
{
SWFMovie movie = getMovie(getThis() TSRMLS_CC);
-#if defined(HAVE_MING_ZLIB) && defined(HAVE_NEW_MING)
+#if defined(HAVE_MING_ZLIB) && !defined(HAVE_NEW_MING)
zval **zlimit = NULL;
int limit = -1;
int argc = ZEND_NUM_ARGS();
Ming_setSWFCompression(oldval);
}
RETURN_LONG(out);
+#elif defined(HAVE_NEW_MING) && defined(HAVE_MING_MOVIE_LEVEL)
+ zval **zlimit = NULL;
+ int limit = -1;
+ int argc = ZEND_NUM_ARGS();
+
+ if(argc) {
+ if (zend_get_parameters_ex(1, &zlimit) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+ convert_to_long_ex(zlimit);
+ limit = Z_LVAL_PP(zlimit);
+
+ if ((limit < 0) || (limit > 9)) {
+ php_error(E_WARNING,"compression level must be within 0..9");
+ RETURN_FALSE;
+ }
+ }
+ RETURN_LONG(SWFMovie_output(movie, &phpByteOutputMethod, NULL, limit));
#else
RETURN_LONG(SWFMovie_output(movie, &phpByteOutputMethod, NULL));
#endif
PHP_METHOD(swfmovie, saveToFile)
{
zval **x;
-#if defined(HAVE_MING_ZLIB) && defined(HAVE_NEW_MING)
+#if defined(HAVE_MING_ZLIB) || defined(HAVE_NEW_MING)
zval **zlimit = NULL;
int limit = -1;
+#endif
+#if defined(HAVE_MING_ZLIB) && !defined(HAVE_NEW_MING)
int oldval = INT_MIN;
long out;
#endif
WRONG_PARAM_COUNT;
break;
case 2:
-#if defined(HAVE_MING_ZLIB) && defined(HAVE_NEW_MING)
+#if defined(HAVE_MING_ZLIB) || defined(HAVE_NEW_MING)
if (zend_get_parameters_ex(2, &x, &zlimit) == FAILURE)
WRONG_PARAM_COUNT;
convert_to_long_ex(zlimit);
php_error(E_WARNING,"compression level must be within 0..9");
RETURN_FALSE;
}
+#endif
+#if defined(HAVE_MING_ZLIB) && !defined(HAVE_NEW_MING)
oldval = Ming_setSWFCompression(limit);
#endif
break;
}
ZEND_FETCH_RESOURCE(what, php_stream *, x, -1,"File-Handle",php_file_le_stream());
-#if defined(HAVE_MING_ZLIB) && defined(HAVE_NEW_MING)
+#if defined(HAVE_MING_ZLIB) && !defined(HAVE_NEW_MING)
out = SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, what);
if (oldval >= -1 && oldval <=9)
Ming_setSWFCompression(oldval);
RETURN_LONG(out);
+#elif defined(HAVE_NEW_MING) && defined(HAVE_MING_MOVIE_LEVEL)
+ RETURN_LONG(SWFMovie_output(movie, &phpStreamOutputMethod, what, limit));
#else
RETURN_LONG(SWFMovie_output(movie, &phpStreamOutputMethod, what));
#endif
PHP_METHOD(swfmovie, save)
{
zval **x;
-#if defined(HAVE_MING_ZLIB) && defined(HAVE_NEW_MING)
+#if defined(HAVE_MING_ZLIB) || defined(HAVE_NEW_MING)
zval **zlimit = NULL;
int limit = -1;
+#endif
+#if defined(HAVE_MING_ZLIB) && !defined(HAVE_NEW_MING)
int oldval = INT_MIN;
#endif
long retval;
}
break;
case 2:
-#if defined(HAVE_MING_ZLIB) && defined(HAVE_NEW_MING)
+#if defined(HAVE_MING_ZLIB) || defined(HAVE_NEW_MING)
if (zend_get_parameters_ex(2, &x, &zlimit) == FAILURE) {
WRONG_PARAM_COUNT;
}
php_error(E_WARNING,"compression level must be within 0..9");
RETURN_FALSE;
}
+#endif
+#if defined(HAVE_MING_ZLIB) && !defined(HAVE_NEW_MING)
oldval = Ming_setSWFCompression(limit);
#endif
break;
if (Z_TYPE_PP(x) == IS_RESOURCE) {
ZEND_FETCH_RESOURCE(stream, php_stream *, x, -1,"File-Handle",php_file_le_stream());
+#if defined(HAVE_NEW_MING) && defined(HAVE_MING_MOVIE_LEVEL)
+ RETURN_LONG(SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, stream, limit));
+#else
RETVAL_LONG(SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, stream));
-#if defined(HAVE_MING_ZLIB) && defined(HAVE_NEW_MING)
+#if defined(HAVE_MING_ZLIB) && !defined(HAVE_NEW_MING)
if(oldval >= -1 && oldval <=9)
Ming_setSWFCompression(oldval);
#endif
return;
+#endif
}
convert_to_string_ex(x);
RETURN_FALSE;
}
+#if defined(HAVE_NEW_MING) && defined(HAVE_MING_MOVIE_LEVEL)
+ retval = SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, (void *)stream, limit);
+#else
retval = SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, (void *)stream);
+#endif
php_stream_close(stream);
-#if defined(HAVE_MING_ZLIB) && defined(HAVE_NEW_MING)
+#if defined(HAVE_MING_ZLIB) && !defined(HAVE_NEW_MING)
if(oldval >= -1 && oldval <=9)
Ming_setSWFCompression(oldval);
#endif