| 1 | # - Try to find FFMPEG
|
|---|
| 2 | # Once done this will define
|
|---|
| 3 | #
|
|---|
| 4 | # FFMPEG_FOUND - system has FFMPEG
|
|---|
| 5 | # FFMPEG_INCLUDE_DIR - the include directory
|
|---|
| 6 | # FFMPEG_LIBRARY_DIR - the directory containing the libraries
|
|---|
| 7 | # FFMPEG_LIBRARIES - Link these to use FFMPEG
|
|---|
| 8 | #
|
|---|
| 9 |
|
|---|
| 10 | SET( FFMPEG_HEADERS avformat.h avcodec.h avutil.h avdevice.h swscale.h )
|
|---|
| 11 | if( WIN32 )
|
|---|
| 12 | SET( FFMPEG_LIBRARIES avformat.lib avcodec.lib avutil.lib avdevice.lib swscale.lib )
|
|---|
| 13 | FIND_PATH( FFMPEG_INCLUDE_DIR ${FFMPEG_HEADERS}
|
|---|
| 14 | PATHS $ENV{FFMPEGDIR}/include/ffmpeg )
|
|---|
| 15 | FIND_PATH( FFMPEG_LIBRARY_DIR ${FFMPEG_LIBRARIES}
|
|---|
| 16 | PATHS $ENV{FFMPEGDIR}/lib )
|
|---|
| 17 | else( WIN32 )
|
|---|
| 18 | INCLUDE(FindPkgConfig)
|
|---|
| 19 |
|
|---|
| 20 | #FindAvformat
|
|---|
| 21 | if ( PKG_CONFIG_FOUND )
|
|---|
| 22 | pkg_check_modules( AVFORMAT libavformat )
|
|---|
| 23 | endif ( PKG_CONFIG_FOUND )
|
|---|
| 24 |
|
|---|
| 25 | FIND_PATH( AVFORMAT_INCLUDE_DIR avformat.h
|
|---|
| 26 | PATHS ${AVFORMAT_INCLUDE_DIRS}
|
|---|
| 27 | /usr/include/
|
|---|
| 28 | /usr/include/ffmpeg/
|
|---|
| 29 | PATH_SUFFIXES libavformat )
|
|---|
| 30 |
|
|---|
| 31 | FIND_LIBRARY( AVFORMAT_LIBRARY avformat
|
|---|
| 32 | PATHS ${AVFORMAT_LIBRARY_DIRS}
|
|---|
| 33 | /usr/lib/
|
|---|
| 34 | /usr/lib/ffmpeg/ )
|
|---|
| 35 | #FindAvcodec
|
|---|
| 36 | if ( PKG_CONFIG_FOUND )
|
|---|
| 37 | pkg_check_modules( AVCODEC libavcodec )
|
|---|
| 38 | endif ( PKG_CONFIG_FOUND )
|
|---|
| 39 |
|
|---|
| 40 | FIND_PATH( AVCODEC_INCLUDE_DIR avcodec.h
|
|---|
| 41 | PATHS ${AVCODEC_INCLUDE_DIRS}
|
|---|
| 42 | /usr/include/
|
|---|
| 43 | /usr/include/ffmpeg/
|
|---|
| 44 | PATH_SUFFIXES libavcodec )
|
|---|
| 45 |
|
|---|
| 46 | FIND_LIBRARY( AVCODEC_LIBRARY avcodec
|
|---|
| 47 | PATHS ${AVCODEC_LIBRARY_DIRS}
|
|---|
| 48 | /usr/lib/
|
|---|
| 49 | /usr/lib/ffmpeg/ )
|
|---|
| 50 | #FindAvutil
|
|---|
| 51 | if ( PKG_CONFIG_FOUND )
|
|---|
| 52 | pkg_check_modules( AVUTIL libavutil )
|
|---|
| 53 | endif ( PKG_CONFIG_FOUND )
|
|---|
| 54 |
|
|---|
| 55 | FIND_PATH( AVUTIL_INCLUDE_DIR avutil.h
|
|---|
| 56 | PATHS ${AVUTIL_INCLUDE_DIRS}
|
|---|
| 57 | /usr/include/
|
|---|
| 58 | /usr/include/ffmpeg/
|
|---|
| 59 | PATH_SUFFIXES libavutil )
|
|---|
| 60 |
|
|---|
| 61 | FIND_LIBRARY( AVUTIL_LIBRARY avutil
|
|---|
| 62 | PATHS ${AVUTIL_LIBRARY_DIRS}
|
|---|
| 63 | /usr/lib/
|
|---|
| 64 | /usr/lib/ffmpeg/ )
|
|---|
| 65 |
|
|---|
| 66 | #FindAvdevice
|
|---|
| 67 | if ( PKG_CONFIG_FOUND )
|
|---|
| 68 | pkg_check_modules( AVDEVICE libavdevice )
|
|---|
| 69 | endif ( PKG_CONFIG_FOUND )
|
|---|
| 70 |
|
|---|
| 71 | FIND_PATH( AVDEVICE_INCLUDE_DIR avdevice.h
|
|---|
| 72 | PATHS ${AVDEVICE_INCLUDE_DIRS}
|
|---|
| 73 | /usr/include/
|
|---|
| 74 | /usr/include/ffmpeg/
|
|---|
| 75 | PATH_SUFFIXES libavdevice )
|
|---|
| 76 |
|
|---|
| 77 | FIND_LIBRARY( AVDEVICE_LIBRARY avdevice
|
|---|
| 78 | PATHS ${AVDEVICE_LIBRARY_DIRS}
|
|---|
| 79 | /usr/lib/
|
|---|
| 80 | /usr/lib/ffmpeg/ )
|
|---|
| 81 | #FindSwscale
|
|---|
| 82 | if ( PKG_CONFIG_FOUND )
|
|---|
| 83 | pkg_check_modules( SWSCALE libswscale )
|
|---|
| 84 | endif ( PKG_CONFIG_FOUND )
|
|---|
| 85 |
|
|---|
| 86 | FIND_PATH( SWSCALE_INCLUDE_DIR swscale.h
|
|---|
| 87 | PATHS ${SWSCALE_INCLUDE_DIRS}
|
|---|
| 88 | /usr/include/
|
|---|
| 89 | /usr/include/ffmpeg/
|
|---|
| 90 | PATH_SUFFIXES libswscale )
|
|---|
| 91 |
|
|---|
| 92 | FIND_LIBRARY( SWSCALE_LIBRARY swscale
|
|---|
| 93 | PATHS ${SWSCALE_LIBRARY_DIRS}
|
|---|
| 94 | /usr/lib/
|
|---|
| 95 | /usr/lib/ffmpeg/ )
|
|---|
| 96 |
|
|---|
| 97 | endif( WIN32 )
|
|---|
| 98 |
|
|---|
| 99 | SET( FFMPEG_FOUND FALSE )
|
|---|
| 100 |
|
|---|
| 101 | IF ( AVFORMAT_INCLUDE_DIR AND AVFORMAT_LIBRARY )
|
|---|
| 102 | SET ( AVFORMAT_FOUND TRUE )
|
|---|
| 103 | ENDIF ( AVFORMAT_INCLUDE_DIR AND AVFORMAT_LIBRARY )
|
|---|
| 104 |
|
|---|
| 105 | IF ( AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY )
|
|---|
| 106 | SET ( AVCODEC_FOUND TRUE )
|
|---|
| 107 | ENDIF ( AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY )
|
|---|
| 108 |
|
|---|
| 109 | IF ( AVUTIL_INCLUDE_DIR AND AVUTIL_LIBRARY )
|
|---|
| 110 | SET ( AVUTIL_FOUND TRUE )
|
|---|
| 111 | ENDIF ( AVUTIL_INCLUDE_DIR AND AVUTIL_LIBRARY )
|
|---|
| 112 |
|
|---|
| 113 | # it is possible that avdevice and swscale are not present;
|
|---|
| 114 | # - avdevice was introduced in [11077] 23/11/2007
|
|---|
| 115 | # - swscale is an optional GPL module; a stub exists within avcodec
|
|---|
| 116 | # that is used if swscale is not present
|
|---|
| 117 | IF ( AVDEVICE_INCLUDE_DIR AND AVDEVICE_LIBRARY )
|
|---|
| 118 | SET ( AVDEVICE_FOUND TRUE )
|
|---|
| 119 | ELSE ( AVDEVICE_INCLUDE_DIR AND AVDEVICE_LIBRARY )
|
|---|
| 120 | SET( AVDEVICE_FOUND FALSE )
|
|---|
| 121 | SET( AVDEVICE_INCLUDE_DIR "" )
|
|---|
| 122 | SET( AVDEVICE_LIBRARY "" )
|
|---|
| 123 | ENDIF ( AVDEVICE_INCLUDE_DIR AND AVDEVICE_LIBRARY )
|
|---|
| 124 |
|
|---|
| 125 | IF ( SWSCALE_INCLUDE_DIR AND SWSCALE_LIBRARY )
|
|---|
| 126 | SET ( SWSCALE_FOUND TRUE )
|
|---|
| 127 | ELSE ( SWSCALE_INCLUDE_DIR AND SWSCALE_LIBRARY )
|
|---|
| 128 | SET( SWSCALE_FOUND FALSE )
|
|---|
| 129 | SET( SWSCALE_INCLUDE_DIR "" )
|
|---|
| 130 | SET( SWSCALE_LIBRARY "" )
|
|---|
| 131 | ENDIF ( SWSCALE_INCLUDE_DIR AND SWSCALE_LIBRARY )
|
|---|
| 132 |
|
|---|
| 133 |
|
|---|
| 134 | IF ( WIN32 )
|
|---|
| 135 | IF ( FFMPEG_INCLUDE_DIR AND FFMPEG_LIBRARY_DIR )
|
|---|
| 136 | SET( FFMPEG_FOUND TRUE )
|
|---|
| 137 | ENDIF ( FFMPEG_INCLUDE_DIR AND FFMPEG_LIBRARY_DIR )
|
|---|
| 138 | ELSE ( WIN32 )
|
|---|
| 139 | IF ( AVFORMAT_INCLUDE_DIR AND AVCODEC_INCLUDE_DIR AND AVUTIL_INCLUDE_DIR )
|
|---|
| 140 | SET ( FFMPEG_FOUND TRUE )
|
|---|
| 141 |
|
|---|
| 142 | SET ( FFMPEG_INCLUDE_DIR
|
|---|
| 143 | ${AVFORMAT_INCLUDE_DIR}
|
|---|
| 144 | ${AVCODEC_INCLUDE_DIR}
|
|---|
| 145 | ${AVUTIL_INCLUDE_DIR}
|
|---|
| 146 | ${AVDEVICE_INCLUDE_DIR}
|
|---|
| 147 | ${SWSCALE_INCLUDE_DIR} )
|
|---|
| 148 |
|
|---|
| 149 | SET ( FFMPEG_LIBRARIES
|
|---|
| 150 | ${AVFORMAT_LIBRARY}
|
|---|
| 151 | ${AVCODEC_LIBRARY}
|
|---|
| 152 | ${AVUTIL_LIBRARY}
|
|---|
| 153 | ${AVDEVICE_LIBRARY}
|
|---|
| 154 | ${SWSCALE_LIBRARY} )
|
|---|
| 155 | ENDIF ( AVFORMAT_INCLUDE_DIR AND AVCODEC_INCLUDE_DIR AND AVUTIL_INCLUDE_DIR )
|
|---|
| 156 | ENDIF ( WIN32 )
|
|---|
| 157 |
|
|---|