[Libav-user] Motion estimation : replacement for deprecated AVFrame::motion_val ?

wm4 nfxjfg at googlemail.com
Tue Mar 25 14:40:24 CET 2014


On Tue, 25 Mar 2014 13:50:48 +0100
Vojtěch Král <vojtech at kral.hk> wrote:

>  
> 
> On 2014-03-25 13:29, Tomas Härdin wrote: 
> 
> > Please avoid top posting on these lists - it's considered bad form.
> > 
> > On 2014-03-25 12:10, cyril poulet wrote: 
> > 
> > 2014-03-25 12:06 GMT+01:00 Tomas Härdin <tomas.hardin at codemill.se>:
> > 
> > On 2014-03-25 11:29, cyril poulet wrote:
> > Hi all
> > As others who already posted on this matter but got no answers, I'm trying to get motion vectors from h264 codec (P-frames).
> > Before v2, they seemed to be available in AVFrame::motion_val, (along with motion_subsample_log2 and mb_type), which are now deprecated.
> > 
> > Is there any way to get these values since v2 ?
> > 
> > (I'm also interested in getting back the dct_coeff for I-frames, but something tells me that all these questions are linked) I think the general direction nowadays is to hide such internals. If you want access to this stuff in the future you'll have to fork and hack the functionality in
> > 
> > /Tomas
> 
> > So i've understood, but I don't really see why these values are not available anymore. I realize that messing with the internals of various codecs is not why libav is made for, but these fields are calculated anyway, so why not propagate it to the AVFrame ?
> 
>  Because they're internal, and having them exposed hampers refactoring
> efforts. If you want stuff to remain "like before" then just use some
> specific old version of ffmpeg in your application (or even a specific
> commit)
> 
>  /Tomas 
> 
> That's a rather evasive answer... I myself would too welcome if the API
> for access to internals such as DCTs and MVs was preserved (mostly for
> academical / experimental purposes, as I'm working on a bc thesis
> concerning video right now). Refactoring is a great thing, but it
> doesn't have to entail removing funcionality... 

As far as I know, the API was deprecated by Libav. Libav also removed
the implementation of these. FFmpeg merged the deprecation, but not the
removal of the implementation (or at least not all of it). So there's
hope for you to convince the developers to un-deprecate it.


More information about the Libav-user mailing list