87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
| hls_sources = [
 | |
|   'gsthlsdemux.c',
 | |
|   'gsthlsdemux-util.c',
 | |
|   'gsthlselement.c',
 | |
|   'gsthlsplugin.c',
 | |
|   'gsthlssink.c',
 | |
|   'gsthlssink2.c',
 | |
|   'gstm3u8playlist.c',
 | |
|   'm3u8.c',
 | |
| ]
 | |
| 
 | |
| hls_headers = [
 | |
|   'gstm3u8playlist.h',
 | |
|   'm3u8.h',
 | |
|   'gsthlsdemux.h',
 | |
|   'gsthlssink.h',
 | |
|   'gsthlselements.h',
 | |
|   'gsthlssink2.h',
 | |
| ]
 | |
| 
 | |
| doc_sources = []
 | |
| foreach s: hls_sources + hls_headers
 | |
|   doc_sources += meson.current_source_dir() / s
 | |
| endforeach
 | |
| 
 | |
| plugin_sources += {
 | |
|   'hls': pathsep.join(doc_sources)
 | |
| }
 | |
| 
 | |
| hls_dep = declare_dependency(include_directories : include_directories('.'))
 | |
| 
 | |
| hls_cargs = ['-DGST_USE_UNSTABLE_API']
 | |
| 
 | |
| hls_crypto = get_option('hls-crypto')
 | |
| hls_option = get_option('hls')
 | |
| hls_crypto_dep = dependency('', required : false)
 | |
| # used for unit test
 | |
| hls_dep = dependency('', required : false)
 | |
| 
 | |
| if hls_option.disabled()
 | |
|   subdir_done()
 | |
| endif
 | |
| 
 | |
| if ['auto', 'nettle'].contains(hls_crypto)
 | |
|   hls_crypto_dep = dependency('nettle', version : '>= 3.0', required : false)
 | |
|   if hls_crypto_dep.found()
 | |
|     hls_cargs += ['-DHAVE_NETTLE']
 | |
|   endif
 | |
| endif
 | |
| 
 | |
| if not hls_crypto_dep.found() and ['auto', 'libgcrypt'].contains(hls_crypto)
 | |
|   hls_crypto_dep = cc.find_library('gcrypt', required : false)
 | |
|   if hls_crypto_dep.found()
 | |
|     hls_cargs += ['-DHAVE_LIBGCRYPT']
 | |
|   endif
 | |
| endif
 | |
| 
 | |
| if not hls_crypto_dep.found() and ['auto', 'openssl'].contains(hls_crypto)
 | |
|   hls_crypto_dep = dependency('openssl', required : false)
 | |
|   if hls_crypto_dep.found()
 | |
|     hls_cargs += ['-DHAVE_OPENSSL']
 | |
|   endif
 | |
| endif
 | |
| 
 | |
| if not hls_crypto_dep.found()
 | |
|   if hls_crypto == 'auto'
 | |
|     message('Enable HLS plugin enable without crypto')
 | |
|   elif hls_option.enabled()
 | |
|     error('HLS plugin enabled with crypto, but crypto library "@0@" not found'.format(hls_crypto))
 | |
|   else
 | |
|     subdir_done()
 | |
|   endif
 | |
| endif
 | |
| 
 | |
| gsthls = library('gsthls',
 | |
|   hls_sources,
 | |
|   c_args : gst_plugins_bad_args + hls_cargs,
 | |
|   link_args : noseh_link_args,
 | |
|   include_directories : [configinc],
 | |
|   dependencies : [gstpbutils_dep, gsttag_dep, gstvideo_dep,
 | |
|                   gstadaptivedemux_dep, gsturidownloader_dep,
 | |
|                   hls_crypto_dep, gio_dep, libm],
 | |
|   install : true,
 | |
|   install_dir : plugins_install_dir,
 | |
| )
 | |
| plugins += [gsthls]
 |