mirror of
				https://github.com/ossrs/srs.git
				synced 2025-03-09 15:49:59 +00:00 
			
		
		
		
	Build: Support --shared-ffmpeg to link with *.so for LGPL license. 4.0.126
This commit is contained in:
		
							parent
							
								
									d1d0b9ca5c
								
							
						
					
					
						commit
						d5266725e2
					
				
					 11 changed files with 45 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -180,6 +180,7 @@ For external services to work with SRS:
 | 
			
		|||
 | 
			
		||||
## V4 changes
 | 
			
		||||
 | 
			
		||||
* v4.0, 2021-06-01, Support --shared-ffmpeg to link with *.so for LGPL license. 4.0.126
 | 
			
		||||
* v4.0, 2021-06-01, Support --shared-srt to link with *.so for MPL license. 4.0.125
 | 
			
		||||
* v4.0, 2021-05-31, Use [SPDX-License-Identifier: MIT](https://spdx.dev/ids/). 4.0.124
 | 
			
		||||
* v4.0, 2021-05-28, Fix bugs for GB28181 and RTC. 4.0.123
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								trunk/3rdparty/ffmpeg-4-fit/libavcodec/libavcodec.v
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								trunk/3rdparty/ffmpeg-4-fit/libavcodec/libavcodec.v
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
LIBAVCODEC_MAJOR {
 | 
			
		||||
    global:
 | 
			
		||||
        av*;
 | 
			
		||||
    local:
 | 
			
		||||
        *;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								trunk/3rdparty/ffmpeg-4-fit/libavcodec/log2_tab.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								trunk/3rdparty/ffmpeg-4-fit/libavcodec/log2_tab.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
#include "libavutil/log2_tab.c"
 | 
			
		||||
							
								
								
									
										1
									
								
								trunk/3rdparty/ffmpeg-4-fit/libavcodec/reverse.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								trunk/3rdparty/ffmpeg-4-fit/libavcodec/reverse.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
#include "libavutil/reverse.c"
 | 
			
		||||
							
								
								
									
										6
									
								
								trunk/3rdparty/ffmpeg-4-fit/libavutil/libavutil.v
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								trunk/3rdparty/ffmpeg-4-fit/libavutil/libavutil.v
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
LIBAVUTIL_MAJOR {
 | 
			
		||||
    global:
 | 
			
		||||
        av*;
 | 
			
		||||
    local:
 | 
			
		||||
        *;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										7
									
								
								trunk/3rdparty/ffmpeg-4-fit/libswresample/libswresample.v
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								trunk/3rdparty/ffmpeg-4-fit/libswresample/libswresample.v
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
LIBSWRESAMPLE_MAJOR {
 | 
			
		||||
    global:
 | 
			
		||||
        swr_*;
 | 
			
		||||
        swresample_*;
 | 
			
		||||
    local:
 | 
			
		||||
        *;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								trunk/3rdparty/ffmpeg-4-fit/libswresample/log2_tab.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								trunk/3rdparty/ffmpeg-4-fit/libswresample/log2_tab.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
#include "libavutil/log2_tab.c"
 | 
			
		||||
| 
						 | 
				
			
			@ -637,6 +637,10 @@ if [ ! -f ${SRS_OBJS}/srtp2/lib/libsrtp2.a ]; then echo "Build libsrtp-2-fit sta
 | 
			
		|||
# libopus, for WebRTC to transcode AAC with Opus.
 | 
			
		||||
#####################################################################################
 | 
			
		||||
if [[ $SRS_RTC == YES ]]; then
 | 
			
		||||
    # Only build static libraries if no shared FFmpeg.
 | 
			
		||||
    if [[ $SRS_SHARED_FFMPEG == NO ]]; then
 | 
			
		||||
        OPUS_OPTIONS="--disable-shared"
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -f ${SRS_OBJS}/${SRS_PLATFORM}/opus-1.3.1/_release/lib/libopus.a ]]; then
 | 
			
		||||
        echo "The opus-1.3.1 is ok.";
 | 
			
		||||
    else
 | 
			
		||||
| 
						 | 
				
			
			@ -644,7 +648,7 @@ if [[ $SRS_RTC == YES ]]; then
 | 
			
		|||
        (
 | 
			
		||||
            rm -rf ${SRS_OBJS}/${SRS_PLATFORM}/opus-1.3.1 && cd ${SRS_OBJS}/${SRS_PLATFORM} &&
 | 
			
		||||
            tar xf ../../3rdparty/opus-1.3.1.tar.gz && cd opus-1.3.1 &&
 | 
			
		||||
            ./configure --prefix=`pwd`/_release --enable-static --disable-shared && make ${SRS_JOBS} && make install
 | 
			
		||||
            ./configure --prefix=`pwd`/_release --enable-static $OPUS_OPTIONS && make ${SRS_JOBS} && make install
 | 
			
		||||
            cd .. && rm -rf opus && ln -sf opus-1.3.1/_release opus
 | 
			
		||||
        )
 | 
			
		||||
    fi
 | 
			
		||||
| 
						 | 
				
			
			@ -670,6 +674,10 @@ if [[ $SRS_FFMPEG_FIT == YES ]]; then
 | 
			
		|||
    nasm -v >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
 | 
			
		||||
        FFMPEG_OPTIONS="--disable-x86asm"
 | 
			
		||||
    fi
 | 
			
		||||
    # Only build static libraries if no shared FFmpeg.
 | 
			
		||||
    if [[ $SRS_SHARED_FFMPEG == YES ]]; then
 | 
			
		||||
        FFMPEG_OPTIONS="$FFMPEG_OPTIONS --enable-shared"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ -f ${SRS_OBJS}/${SRS_PLATFORM}/ffmpeg-4-fit/_release/lib/libavcodec.a ]]; then
 | 
			
		||||
        echo "The ffmpeg-4-fit is ok.";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,9 +40,14 @@ SRS_PREFIX=/usr/local/srs
 | 
			
		|||
SRS_JOBS=1
 | 
			
		||||
SRS_STATIC=NO
 | 
			
		||||
# If enabled, link shared libraries for libst.so which uses MPL license.
 | 
			
		||||
# See https://github.com/ossrs/srs/wiki/LicenseMixing#state-threads
 | 
			
		||||
SRS_SHARED_ST=NO
 | 
			
		||||
# If enabled, link shared libraries for libsrt.so which uses MPL license.
 | 
			
		||||
# See https://github.com/ossrs/srs/wiki/LicenseMixing#srt
 | 
			
		||||
SRS_SHARED_SRT=NO
 | 
			
		||||
# If enabled, link shared libraries for FFmpeg which is LGPL license.
 | 
			
		||||
# See https://github.com/ossrs/srs/wiki/LicenseMixing#ffmpeg
 | 
			
		||||
SRS_SHARED_FFMPEG=NO
 | 
			
		||||
# whether enable the gcov
 | 
			
		||||
SRS_GCOV=NO
 | 
			
		||||
# whether enable the log verbose/info/trace level.
 | 
			
		||||
| 
						 | 
				
			
			@ -149,8 +154,9 @@ Experts:
 | 
			
		|||
  --sys-ssl=on|off          Do not compile ssl, use system ssl(-lssl) if required. Default: $(value2switch $SRS_USE_SYS_SSL)
 | 
			
		||||
  --ssl-1-0=on|off          Whether use openssl-1.0.*. Default: $(value2switch $SRS_SSL_1_0)
 | 
			
		||||
  --ssl-local=on|off        Whether use local openssl, not system even exists. Default: $(value2switch $SRS_SSL_LOCAL)
 | 
			
		||||
  --shared-st=on|off        Use link shared libraries for ST which uses MPL license. Default: $(value2switch $SRS_SHARED_ST)
 | 
			
		||||
  --shared-srt=on|off       Use link shared libraries for SRT which uses MPL license. Default: $(value2switch $SRS_SHARED_SRT)
 | 
			
		||||
  --shared-st=on|off        Use shared libraries for ST which is MPL license. Default: $(value2switch $SRS_SHARED_ST)
 | 
			
		||||
  --shared-srt=on|off       Use shared libraries for SRT which is MPL license. Default: $(value2switch $SRS_SHARED_SRT)
 | 
			
		||||
  --shared-ffmpeg=on|off    Use shared libraries for FFmpeg which is LGPL license. Default: $(value2switch $SRS_SHARED_FFMPEG)
 | 
			
		||||
  --clean=on|off            Whether do 'make clean' when configure. Default: $(value2switch $SRS_CLEAN)
 | 
			
		||||
  --simulator=on|off        RTC: Whether enable network simulator. Default: $(value2switch $SRS_SIMULATOR)
 | 
			
		||||
  --build-tag=<TAG>         Set the build object directory suffix.
 | 
			
		||||
| 
						 | 
				
			
			@ -298,10 +304,10 @@ function parse_user_option() {
 | 
			
		|||
        --sys-ssl)                      SRS_USE_SYS_SSL=$(switch2value $value) ;;
 | 
			
		||||
 | 
			
		||||
        --use-shared-st)                SRS_SHARED_ST=YES           ;;
 | 
			
		||||
        --shared-st)                    SRS_SHARED_ST=$(switch2value $value) ;;
 | 
			
		||||
 | 
			
		||||
        --use-shared-srt)               SRS_SHARED_SRT=YES          ;;
 | 
			
		||||
        --shared-st)                    SRS_SHARED_ST=$(switch2value $value) ;;
 | 
			
		||||
        --shared-srt)                   SRS_SHARED_SRT=$(switch2value $value) ;;
 | 
			
		||||
        --shared-ffmpeg)                SRS_SHARED_FFMPEG=$(switch2value $value) ;;
 | 
			
		||||
 | 
			
		||||
        --with-valgrind)                SRS_VALGRIND=YES            ;;
 | 
			
		||||
        --without-valgrind)             SRS_VALGRIND=NO             ;;
 | 
			
		||||
| 
						 | 
				
			
			@ -483,6 +489,7 @@ function regenerate_options() {
 | 
			
		|||
    SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --static=$(value2switch $SRS_STATIC)"
 | 
			
		||||
    SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-st=$(value2switch $SRS_SHARED_ST)"
 | 
			
		||||
    SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-srt=$(value2switch $SRS_SHARED_SRT)"
 | 
			
		||||
    SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-ffmpeg=$(value2switch $SRS_SHARED_FFMPEG)"
 | 
			
		||||
    SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-verbose=$(value2switch $SRS_LOG_VERBOSE)"
 | 
			
		||||
    SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-info=$(value2switch $SRS_LOG_INFO)"
 | 
			
		||||
    SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-trace=$(value2switch $SRS_LOG_TRACE)"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								trunk/configure
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								trunk/configure
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -146,6 +146,7 @@ fi
 | 
			
		|||
if [[ $SRS_FFMPEG_FIT == YES ]]; then
 | 
			
		||||
  LibFfmpegRoot="${SRS_OBJS_DIR}/ffmpeg/include"; LibFfmpegFile="${SRS_OBJS_DIR}/ffmpeg/lib/libavcodec.a ${SRS_OBJS_DIR}/ffmpeg/lib/libswresample.a ${SRS_OBJS_DIR}/ffmpeg/lib/libavutil.a"
 | 
			
		||||
  LibFfmpegRoot="${LibFfmpegRoot} ${SRS_OBJS_DIR}/opus/include"; LibFfmpegFile="${LibFfmpegFile} ${SRS_OBJS_DIR}/opus/lib/libopus.a"
 | 
			
		||||
  if [[ $SRS_SHARED_FFMPEG == YES ]]; then LibFfmpegFile="-L${SRS_OBJS_DIR}/ffmpeg/lib -lavcodec -lswresample -lavutil -L${SRS_OBJS_DIR}/opus/lib -lopus"; fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# openssl-1.1.0e, for the RTMP complex handshake.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,6 @@
 | 
			
		|||
 | 
			
		||||
#define VERSION_MAJOR       4
 | 
			
		||||
#define VERSION_MINOR       0
 | 
			
		||||
#define VERSION_REVISION    125
 | 
			
		||||
#define VERSION_REVISION    126
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue