Hi Dave,

On 12.11.2015 02:04, Mr Dave wrote:
> 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

Thanks for these links.

> 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.

Yes this should work fine.
I see that you removed the deinterlace functionality. If you want to 
keep/reintroduce that, you can
use the yadif filter from libavfilter as I did in my patch.

> An additional enhancement that is outstanding is determining a precise method 
> of identifying whether
> the libraries are Libav or ffmpeg.

You can use e.g. LIBAVCODEC_VERSION_MICRO for that purpose: '>= 100' is FFmpeg 
'< 100' is Libav.

Best regards,
Andreas

Reply via email to