JuliaIO / VideoIO.jl

Reading and writing of video files in Julia via ffmpeg
https://juliaio.github.io/VideoIO.jl/stable
Other
128 stars 53 forks source link

Upgrade BinDeps to use library groups #8

Closed kmsquire closed 10 years ago

kmsquire commented 10 years ago

Library groups were recently implemented in

https://github.com/JuliaLang/BinDeps.jl/commit/5ce21fd86a6c820e1450f7c90e491e18c201d0ea

It would be nice to support them here. We try to be compatible with both libav and ffmpeg, but they actually have slightly different sets of libraries, so there are a few things to address:

cc: @staticfloat

staticfloat commented 10 years ago

The way we try to structure bindeps scripts is pretty simple; we come up with a list of requirements (we need libraries foo, bar, and baz) and then we come up with ways to satisfy those requirements. From what I'm reading above, we want libavcodec, libavformat, libavutil, libswscale and libavdevice. If both FFmpeg and libav will work, let's just choose one as the default to get installed and call it good. If someone has a complete ffmpeg installation, we'll use those libraries. If someone has an incomplete installation, library groups will force all of these libraries to get installed through the installation methods available in deps/build.jl.

Does that sound about right?

kmsquire commented 10 years ago

Perfect.

BinDeps is already set up, but it doesn't treat the libraries as a group. We can get rid of support for the libraries we don't need for now.

Right now, libav is the default on Debian/Ubuntu, because there are packages available already for those, and ffmpeg packages are hard to come by. ffmpeg is the default on Windows and Mac, because AFAICT the ffmpeg packages have a slightly better chance at working with most things.

But we can switch everything to libav if that is easier.

We might also want to keep libavfilter, although that's not clear to me at this point. It's included in both, so it shouldn't make much of a difference.

staticfloat commented 10 years ago

Is this complete now?

kmsquire commented 10 years ago

I think it's good for now. I'd still like to support library groups within the AptGet provider, but that's not urgent, and I can open a separate issue, since it's only partially related here.