[FFmpeg-devel] [PATCH] ffprobe: Stash and use width and height before opening the codec

Don Moir donmoir at comcast.net
Fri Mar 8 00:31:44 CET 2013


----- Original Message ----- 
From: "Stefano Sabatini" <stefasab at gmail.com>
To: "FFmpeg development discussions and patches" <ffmpeg-devel at ffmpeg.org>
Sent: Thursday, March 07, 2013 6:21 PM
Subject: Re: [FFmpeg-devel] [PATCH] ffprobe: Stash and use width and height before opening the codec


> On date Thursday 2013-03-07 12:40:12 +0100, Michael Niedermayer encoded:
>> On Wed, Mar 06, 2013 at 10:52:34PM -0500, Derek Buitenhuis wrote:
>> > On 2013-03-06 8:58 PM, Michael Niedermayer wrote:
>> > > -    if (!( avctx->coded_width && avctx->coded_height && avctx->width && avctx->height && avctx->codec_id == 
>> > > AV_CODEC_ID_H264)){
>> > > +    if (!( avctx->coded_width && avctx->coded_height && avctx->width && avctx->height &&
>> > > +           (avctx->codec_id == AV_CODEC_ID_H264 || avctx->codec_id == AV_CODEC_ID_VP6F))){
>> >
>> > I dislike this. This is a codec specific hack which could be handled
>> > generically in ffprobe.c...
>>
>> ffprobe is the only application affected by this ?
>
> I don't like the hack as well, but the alternative is an
> application-level hack (which possibly affects all the applications
> using the API that way), so hack for hack I prefer the less invasive
> hack.

The width and height before avcodec_open is correct and reflected properly in the subsequent frame width and height. Anyone using 
the wrong 'after' avcodec_open values in this case is showing wrong results.

> So the question is: why is the hack required for h264 and vp6f in the
> first place (and only for those codecs)?
>
> Why width and height (which have been computed by
> avformat_find_stream_info(), are overwritten by coded_width/height
> when calling avcodec_open2()?
>
> Why codec_width/height are different from width/height, assuming that
> lowres is *not* enabled and:

Definitely a confusion factor.



More information about the ffmpeg-devel mailing list