ffmpeg-php

manuel wolfshant wolfy at fedoraproject.org
Wed Jul 29 11:39:01 CEST 2009


Hello


    I am trying to package ffmpeg-php  and use rpmfusion's ffmpeg 
package. My package compiles (and works ) fine on centos 5 when using 
the package from rpmforge.  However, when using fedora + rpmfusion (or 
centos + rpmfusion), mock build fails because it does seem to not be 
able to locate the ffmpeg headers.
 Excerpt from working (rpmforge) build log:

checking for ffmpeg support... yes, shared
checking whether to force gd support in ffmpeg-php... no
checking for ffmpeg headers... ...found in /usr/include/libavcodec
checking for ffmpeg libavcodec.so... ...found in /usr/lib
checking for ffmpeg swscale support... yes
checking for ld used by gcc... /usr/bin/ld


    Same when using rpmfusion:
checking for ffmpeg support... yes, shared
checking whether to force gd support in ffmpeg-php... no
checking for ffmpeg headers...
configure: error: ffmpeg headers not found. Make sure ffmpeg is compiled 
as shared libraries using the --enable-shared option
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.38650 (%build)
    Bad exit status from /var/tmp/rpm-tmp.38650 (%build)


    The config.m4 contains:
dnl Determine path to ffmpeg libs
if test "$PHP_FFMPEG" != "no"; then

  dnl Default directories to check for ffmpeg headers
  INC_CHECK_DIRS="/usr/local /usr"

  dnl User has specified using --with=ffmpeg=[dir] a directory where we 
should
  dnl look for ffmpeg headers. Prepend this directory to the default 
dirs so it
  dnl gets checked first.
  if test "$PHP_FFMPEG" != "yes"; then
      INC_CHECK_DIRS="$PHP_FFMPEG $INC_CHECK_DIRS"
  fi

  AC_MSG_CHECKING(for ffmpeg headers)
  for i in $INC_CHECK_DIRS ; do
    if test -f $i/include/ffmpeg/avcodec.h; then
      PHP_ADD_INCLUDE($i/include/ffmpeg)
      FFMPEG_INC_FOUND=$i/include/ffmpeg
      break
    elif test -f $i/include/avcodec.h; then
      PHP_ADD_INCLUDE($i/include)
      FFMPEG_INC_FOUND=$i/include
      break
    elif test -f $i/include/libavcodec/avcodec.h; then
      dnl ffmpeg svn revision 12194 and newer put each header in its own dir
      dnl so we have to include them all.
      PHP_ADD_INCLUDE($i/include/libavcodec/)
      PHP_ADD_INCLUDE($i/include/libavformat/)
      PHP_ADD_INCLUDE($i/include/libavutil/)
      PHP_ADD_INCLUDE($i/include/libswscale/)
      PHP_ADD_INCLUDE($i/include/libavfilter/)
      PHP_ADD_INCLUDE($i/include/libavdevice/)
      FFMPEG_INC_FOUND=$i/include/libavcodec
      break
    fi
  done

  if test -z "$FFMPEG_INC_FOUND"; then
     AC_MSG_RESULT()
     AC_MSG_ERROR([ffmpeg headers not found. Make sure ffmpeg is 
compiled as shared libraries using the --enable-shared option])
  else
     AC_MSG_RESULT(...found in $FFMPEG_INC_FOUND)
  fi

    If I am not mistaken, these checks should accommodate the different 
directory structure (rpmforge uses a single directory for all headers, 
our package seems to have  the headers split as described above under 
the "svn revision 12194" section"). I have tried passing different 
"--with-ffmpeg=" variants, but none was successful.

    My current attempts are available at 
http://wolfy.fedorapeople.org/ffmpeg-php/
    Any ideas, please ?

    TIA
             wolfy


More information about the rpmfusion-developers mailing list