1. I used the daily build from 2015/11/10 (immediately before typing
the response to this email)
2. The 3.4.1rc01 (release candidate 01) is currently on the wiki as a
proposed patch. It is still being considered for putting into the SVN
but this is not something that I can do since I do not have access to
the SVN. It is also in github under the MrDave fork. I will say that
the github has a lot of "noise" in the commits because when I started, I
did not anticipate it would be proposed for a release. Below are the
links to the wiki and github.
Wiki: http://www.lavrsen.dk/foswiki/bin/view/Motion/PatchworkForNewRelease
github: https://github.com/Mr-Dave/motion/tree/motion-3.4
3. The code in 3.4.1 takes a different approach in ffmpeg.c. Rather
than using so many preprocessor directives, it creates "MY" functions
based upon the build version of ffmpeg. In this way I was able to get
the code to function and compile correctly with what I think are all the
versions of Libav and ffmpeg from 2012 onwards. As a result, you will
still see those functions in the code but they are now isolated and
surrounded by simple directives. The following is the code snippet for
the frame allocate for illustration.
AVFrame *my_frame_alloc(void){
AVFrame *pic;
#if (LIBAVFORMAT_VERSION_MAJOR >= 55)
pic = av_frame_alloc();
#else
pic = avcodec_alloc_frame();
#endif
return pic;
}
I believe this allows the code to be backwards compatible to at least
2012 and also across libav and ffmpeg while at the same time make it
much easier to maintain as those two projects evolve in the future. An
additional enhancement that is outstanding is determining a precise
method of identifying whether the libraries are Libav or ffmpeg. Once
that is available, an exact version number from each could be used for
the directives of when the new APIs appeared. Right now, the directives
are based upon the version found in the debian and ubuntu releases in
which depreciation warnings were observed.
Dave
On 11/11/2015 2:24 PM, Andreas Cadhalpun wrote:
Hi Dave,
On 11.11.2015 03:40, Mr Dave wrote:
Regarding the ffmpeg.
I was unable to find any tarball labeled 2.9 on the ffmpeg.org/releases page.
That's right, it's not yet released.
I did however just complete a test of their daily build.
Which daily build?
It does appear that there are many changes to ffmpeg since Motion is now
reporting
many warnings whereas with the 2.8 version, there were none. The 3.4.1 code
appears
to be functional and compiling with the daily snapshot.
If tried to locate the 3.4.1 code, but even the trunk [1] still uses the APIs
that have
been removed from ffmpeg git, i.e. PIX_FMT_YUV420P, avcodec_alloc_frame and
avpicture_deinterlace.
Since the code appears to be functional and only providing new compiler
warnings of
depreciated functions, I think it would be best to proceed with the 3.4.1rc01
code and
address the warnings later.
If it still uses any of the above mentioned API, it will not compile with
FFmpeg 2.9.
Best regards,
Andreas
1: http://www.lavrsen.dk/svn/motion/trunk/ffmpeg.c