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


Reply via email to