[FFmpeg-devel] [PATCH] doc/examples: add scaling_video example

Michael Niedermayer michaelni at gmx.at
Thu Aug 23 20:30:45 CEST 2012


On Tue, Aug 21, 2012 at 02:51:17PM +0200, Stefano Sabatini wrote:
> This example should be useful to show the basic functionality of the
> swscale API.
> 
> More advanced features (scaling options etc., colorspace tweaking) may be
> added later.
> 
> Display code was borrowed from filtering_video.c display_picref() by
> Nicolas George.
[...]
> +static int scale_image(uint8_t *dst_data[4], int dst_linesize[4],
> +                       int dst_w, int dst_h, enum PixelFormat dst_pix_fmt,
> +                       uint8_t * const src_data[4], int src_linesize[4],
> +                       int src_w, int src_h, enum PixelFormat src_pix_fmt,
> +                       void *log_ctx)
> +{
> +    int ret;
> +    struct SwsContext *sws_ctx = sws_getContext(src_w, src_h, src_pix_fmt,
> +                                                dst_w, dst_h, dst_pix_fmt,
> +                                                SWS_BILINEAR, NULL, NULL, NULL);
> +    if (!sws_ctx) {
> +        av_log(log_ctx, AV_LOG_ERROR,
> +               "Impossible to create scale context for the conversion "
> +               "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n",
> +               av_get_pix_fmt_name(src_pix_fmt), src_w, src_h,
> +               av_get_pix_fmt_name(dst_pix_fmt), dst_w, dst_h);
> +        ret = AVERROR(EINVAL);
> +        goto end;
> +    }
> +
> +    if ((ret = av_image_alloc(dst_data, dst_linesize, dst_w, dst_h, dst_pix_fmt, 16)) < 0)
> +        goto end;
> +    ret = 0;
> +    sws_scale(sws_ctx, (const uint8_t * const*)src_data,
> +              src_linesize, 0, src_h, dst_data, dst_linesize);
> +
> +end:
> +    sws_freeContext(sws_ctx);
> +    return ret;
> +}

iam not sure init+allo+free for every scaleing is a good idea for an
example, it could lead to the wrong impression on what has to be done
per picture

[...
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Everything should be made as simple as possible, but not simpler.
-- Albert Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120823/feb47315/attachment.asc>


More information about the ffmpeg-devel mailing list