-
Notifications
You must be signed in to change notification settings - Fork 730
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
Add -gpl extension to FFmpeg (#419) #950
Conversation
tmurakam
commented
Sep 20, 2020
- add '-nogpl' extension.
- cppbuild.sh: Disable GPL modules.
- setup-source.sh: patch postproc.java.
- add '-nogpl' extension. - cppbuild.sh: Disable GPL modules. - setup-source.sh: patch postproc.java.
d1a354a
to
6665a2f
Compare
- Add -gpl extension and remove -nogpl extension. - Add more options for default (non-GPL) profile.
I had updated following points:
|
We only need to have one "extension" line like this in avutil and it should work: We can also do it like this for modules that are only available with extension like postproc: |
I've tried it, but it does not work for default (without) extension build. (It works for -gpl extension).
It does not work, the compilation fails:
Any ideas? |
It works for OpenCV, it'll work with FFmpeg for sure. Show me what you tried exactly. |
Here is my reproduce steps. First clone my repo from https://github.com/javacpp-nogpl/javacpp-presets on CentOS 7 machine, then:
The generated ffmpeg/target/ffmpeg-linux-x86_64.jar does not contains *.so files. It seems that the presets/*.java file is not processed in javacpp:parse goal.
|
I don't see a |
da03bde
to
c89ddcc
Compare
I understood how to write extension line. But I don't understand how to fix the postprocess.java, because the postprocess.h does not exist when --disable-gpl mode... |
Check the CUDA module for OpenCV above. If there are includes given only
for an extension, they'll get ignored without extension.
|
It seems it does not work for FFmpeg, because avfilter inherits postproc: @Properties(
inherit = {avformat.class, postproc.class, swresample.class, swscale.class}, Can we remove the inheritance? |
That should still be fine.
|
- avfilter: do not inherit postproc. - postproc: merge default/gpl code.
Ok, I had fixed the postproc and avfilter. |
We should only need |
I had removed unnecessary |
I had push the commit which revert the avfilter.java to inherit postproc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's also update the pom.xml file in README.md and the samples subdirectory with something like this:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.bytedeco.ffmpeg</groupId>
<artifactId>readfewframe</artifactId>
<version>1.5.5-SNAPSHOT</version>
<properties>
<exec.mainClass>ReadFewFrame</exec.mainClass>
</properties>
<dependencies>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>ffmpeg-platform</artifactId>
<version>4.3.1-1.5.5-SNAPSHOT</version>
</dependency>
<!-- Optional GPL builds with (almost) everything enabled -->
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>ffmpeg-platform-gpl</artifactId>
<version>4.3.1-1.5.5-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>.</sourceDirectory>
</build>
</project>
I had updated the README.
|
No, they are not mutually exclusive. The extension can be given at runtime. Also update |
Ok, I understood. I fixed the README and samples/pom.xml. |
One last thing is that we'll need to add ...
- os: linux
env: PROJ=ffmpeg OS=android-arm
install: true
script: ./ci/install-travis.sh
- os: linux
env: PROJ=ffmpeg OS=android-arm EXT=-gpl
install: true
script: ./ci/install-travis.sh
etc... |
I had updated the .travis.yml and .appveyor.yml. |