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

AVLibs.jl? #9

Closed lucasb-eyer closed 10 years ago

lucasb-eyer commented 10 years ago

I wanted to check whether I could produce #6 on my system. For this I followed utils/README.wrapping.txt, but I'm missing the file src/AVLibs.jl needed by utils/wrap_libav_split.jl. Did you forget to commit it in 0f774c7, or did I miss a step?

kmsquire commented 10 years ago

Sorry, I hadn't run that file in a while, and I had rearranged things just a little.

Couple of quick notes:

  1. It's better to run wrap_libav_split.jl from a different directory (say, a subdirectory of util), because it creates a new subdirectory for every ffmpeg/libav library
  2. If you want to produce something close to what's checked in right now, you should edit .julia/v0.3/Clang/src/wrap_c.jl, and change line 32 from

    InternalOptions() = InternalOptions(true, false)

    to

    InternalOptions() = InternalOptions(true, true)

This produces immutable structs. (It should probably be made a configurable option in Clang.)

Even after this, there are some edits needed to get things up and running. It's not too bad, but it's still a somewhat manual process. It's a lot better than it used to be, though.

There are a few patches checked in to show the changes I made (e.g., src/libav/v54.patch), although these need to be updated.

Feel free to open up additional issues for things that need to be fixed. (There probably needs to be a general issue requesting more details on how to wrap the libraries.)

kmsquire commented 10 years ago

See #10, https://github.com/ihnorton/Clang.jl/issues/100.

kmsquire commented 10 years ago

I had forgotten that I had actually written up pretty detailed instructions on how to wrap libav/ffmpeg.

I just updated them slightly (e.g., I merged https://github.com/ihnorton/Clang.jl/pull/98, so you just need to be on Clang.jl master).

They could always be improved, but @lucasb-eyer, I'm curious if you've used them, and/or if you're looking into #6?

lucasb-eyer commented 10 years ago

I was just trying to see whether I could reproduce #6 on my system and if so maybe help with it. Turns out it works well for me.

kmsquire commented 10 years ago

Okay, thanks. Just so I know, what OS & version are you running?

lucasb-eyer commented 10 years ago

Arch linux. It's a rolling OS, so no distro version, but ffmpeg's version is 2.3.1 and VideoIO says the following:

julia> VideoIO.ffmpeg_or_libav
"ffmpeg"
julia> VideoIO.avcodec_version()
v"55.69.100"
julia> VideoIO.avcodec_version().major
55
julia> VideoIO.avformat_version().major
55
julia> VideoIO.avutil_version().major
52
julia> VideoIO.swscale_version().major
2
julia> VideoIO.avdevice_version().major
55
julia> VideoIO.avfilter_version().major
4
julia> VideoIO.avresample_version().major
0
julia> VideoIO.swresample_version().major
0
julia> VideoIO.postproc_version().major
52

That made me think it might be useful to have one function summarizing version info and some more, as a help for bugreports in the future?

kmsquire commented 10 years ago

I agree, a summary function would be useful.