On Fri, 3 Jan 2014 15:54:34 +0100, Janne Grunau <[email protected]> wrote: > On 2014-01-03 15:07:44 +0100, Anton Khirnov wrote: > > Allocating edges will be removed from generic code, so the encoder must > > handle this explicitly. > > --- > > libavcodec/mpegvideo.c | 22 ++++++++++++++++++++-- > > 1 file changed, 20 insertions(+), 2 deletions(-) > > > > diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c > > index caf8ca2..484dba4 100644 > > --- a/libavcodec/mpegvideo.c > > +++ b/libavcodec/mpegvideo.c > > @@ -422,15 +422,21 @@ fail: > > */ > > static int alloc_frame_buffer(MpegEncContext *s, Picture *pic) > > { > > + int edges_needed = av_codec_is_encoder(s->avctx->codec); > > int r, ret; > > > > pic->tf.f = &pic->f; > > if (s->codec_id != AV_CODEC_ID_WMV3IMAGE && > > s->codec_id != AV_CODEC_ID_VC1IMAGE && > > - s->codec_id != AV_CODEC_ID_MSS2) > > + s->codec_id != AV_CODEC_ID_MSS2) { > > + if (edges_needed) { > > + pic->f.width = s->avctx->width + 2 * EDGE_WIDTH; > > + pic->f.height = s->avctx->height + 2 * EDGE_WIDTH; > > is s->avctx->width/height guaranteed to be multiple of the macroblock > size? iirc get_buffer aligned the dimension in addition to adding edges. >
Does it matter here if it's not? The edge size is compatible with alignment, so it shouldn't matter whether add edges before or after. -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
