Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[avcpp] Enable not-gpl version of AvCpp library which is BSD or LGPL #43345

Open
baziorek opened this issue Jan 18, 2025 · 2 comments
Open

[avcpp] Enable not-gpl version of AvCpp library which is BSD or LGPL #43345

baziorek opened this issue Jan 18, 2025 · 2 comments
Assignees
Labels
category:question This issue is a question

Comments

@baziorek
Copy link

Is your feature request related to a problem? Please describe.

avcpp has BSD or LGPL license. Unfortunately when I'm installing this with VCPKG I see that FFmpeg is installed with ... also GPL components.
As I know how GPL works - it forcing us to make our entire program GPL.

There are no other options (eg. avcpp[no-gpl]) of installing:

./vcpkg/vcpkg search avcpp
avcpp                    2.4.0            Wrapper for the FFmpeg that simplify usage it from C++ projects.

So I'm suggesting to add them, e.g.:

  • avcpp[all] # which is avcpp[no-gpl,gpl]
  • avcpp[no-gpl]
  • avcpp[gpl]

IMO default option should be no-gpl.

AvCpp is wrapper to FFmpeg , but according to FFmpeg license details page is it has components both LGPL and GPL.

When listing possibilities of FFmpeg in vcpkg:

./vcpkg/vcpkg search ffmpeg
avcpp                    2.4.0            Wrapper for the FFmpeg that simplify usage it from C++ projects.
dav1d                    1.5.0            dav1d is a new open-source AV1 decoder developed by the VideoLAN and FFmpe...
ffmpeg                   7.1#2            A library to decode, encode, transcode, mux, demux, stream, filter and pla...
ffmpeg[all]                               Build with all allowed dependencies selected that are compatible with the ...
ffmpeg[all-gpl]                           Build with all allowed dependencies selected that are compatible with the ...
ffmpeg[all-nonfree]                       Build with all allowed dependencies selected with a non-redistributable li...
ffmpeg[alsa]                              Enable ALSA support
ffmpeg[amf]                               AMD AMF codec support
ffmpeg[aom]                               AV1 video encoding/decoding via libaom support in ffmpeg
ffmpeg[ass]                               Libass subtitles rendering, needed for subtitles and ass filter support in...
ffmpeg[avcodec]                           Build the avcodec library
ffmpeg[avdevice]                          Build the avdevice library
ffmpeg[avfilter]                          Build the avfilter library
ffmpeg[avformat]                          Build the avformat library
ffmpeg[avisynthplus]                      Reading of AviSynth script files
ffmpeg[avresample]                        Build the avresample library
ffmpeg[bzip2]                             Bzip2 support
ffmpeg[dav1d]                             AV1 decoding via libdav1d
ffmpeg[drawtext]                          Enable the drawtext filter
ffmpeg[dvdvideo]                          DVD-Video demuxer
ffmpeg[fdk-aac]                           AAC de/encoding via libfdk-aac, **including GPL-incompatible patent-encumb...
ffmpeg[ffmpeg]                            Build the ffmpeg application
ffmpeg[ffplay]                            Build the ffplay application
ffmpeg[ffprobe]                           Build the ffprobe application
ffmpeg[fontconfig]                        Useful for drawtext filter
ffmpeg[freetype]                          Needed for drawtext filter
ffmpeg[fribidi]                           Improves drawtext filter
ffmpeg[gpl]                               Allow use of GPL code, the resulting libs and binaries will be under GPL
ffmpeg[iconv]                             Iconv support
ffmpeg[ilbc]                              iLBC de/encoding via libilbc
ffmpeg[lzma]                              lzma support
ffmpeg[modplug]                           ModPlug via libmodplug
ffmpeg[mp3lame]                           MP3 encoding via libmp3lame
ffmpeg[nonfree]                           Allow use of nonfree code, the resulting libs and binaries will be unredis...
ffmpeg[nvcodec]                           Nvidia video decoding/encoding acceleration
ffmpeg[opencl]                            OpenCL processing
ffmpeg[opengl]                            OpenGL rendering
ffmpeg[openh264]                          H.264 de/encoding via openh264
ffmpeg[openjpeg]                          JPEG 2000 de/encoding via OpenJPEG
ffmpeg[openmpt]                           Decoding tracked files via libopenmpt
ffmpeg[openssl]                           Needed for https support if gnutls, libtls or mbedtls is not used
ffmpeg[opus]                              Opus de/encoding via libopus
ffmpeg[postproc]                          Build the postproc library
ffmpeg[qsv]                               Intel QSV Codec
ffmpeg[sdl2]                              Sdl2 support
ffmpeg[snappy]                            Snappy compression, needed for hap encoding
ffmpeg[soxr]                              Include libsoxr resampling
ffmpeg[speex]                             Speex de/encoding via libspeex
ffmpeg[srt]                               Haivision SRT protocol
ffmpeg[ssh]                               SFTP protocol via libssh
ffmpeg[swresample]                        Build the swresample library
ffmpeg[swscale]                           Build the swscale library
ffmpeg[tensorflow]                        TensorFlow as a DNN module backend for DNN based filters like sr
ffmpeg[tesseract]                         Tesseract, needed for ocr filter
ffmpeg[theora]                            Theora encoding via libtheora
ffmpeg[version3]                          Upgrade (L)GPL to version 3
ffmpeg[vorbis]                            Vorbis en/decoding via libvorbis, native implementation exists
ffmpeg[vpx]                               VP8 and VP9 de/encoding via libvpx
ffmpeg[webp]                              WebP encoding via libwebp
ffmpeg[x264]                              H.264 encoding via x264
ffmpeg[x265]                              HEVC encoding via x265
ffmpeg[xml2]                              XML parsing using the C library libxml2, needed for dash demuxing support
ffmpeg[zlib]                              zlib support
ffnvcodec                12.2.72.0#1      FFmpeg version of Nvidia Codec SDK headers.
freerdp[ffmpeg]                           Enable image scaling, video and audio with ffmpeg
gazebo[ffmpeg]                            Enable audio-video capabilities
netgen[mpeg]                              enable video recording with FFmpeg
opencv[ffmpeg]                            ffmpeg support for opencv
opencv4[ffmpeg]                           ffmpeg support for opencv
openimageio[ffmpeg]                       Enable ffmpeg support for openimageio
pangolin[ffmpeg]                          Build support for ffmpeg video input
qtmultimedia[ffmpeg]                      Build with ffmpeg
sdl2-mixer-ext[ffmpeg]                    Use FFMPEG to play WMA and AAC audio formats.

According to chatgpt components with GPL license are:

  • ffmpeg[gpl]
  • ffmpeg[all-gpl]
  • ffmpeg[x264]
  • ffmpeg[x265]
  • ffmpeg[theora]
  • ffmpeg[fdk-aac]
  • ffmpeg[modplug]
  • ffmpeg[fribidi]
  • ffmpeg[openjpeg]
  • ffmpeg[nonfree] - it is even worse than GPL

Proposed solution

(Described in section "Is your feature request related to a problem? Please describe."):

I'm suggesting to add extra config options, e.g.:

  • avcpp[all] # which is avcpp[no-gpl,gpl]
  • avcpp[no-gpl]
  • avcpp[gpl]

Describe alternatives you've considered

There are two alternatives:

  1. Build AvCpp without VCPKG
  2. Provide our program as GPL

Additional context

No response

@baziorek baziorek added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Jan 18, 2025
@Osyotr
Copy link
Contributor

Osyotr commented Jan 18, 2025

You should add ffmpeg to your top level manifest if you want more control over the features.

@Mengna-Li
Copy link
Contributor

The feature we add is usually a option that already exists upstream. You can control GPL through the feature of ffmpeg.

@Mengna-Li Mengna-Li added category:question This issue is a question and removed category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist labels Jan 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:question This issue is a question
Projects
None yet
Development

No branches or pull requests

3 participants