diff options
author | Edward Hervey <bilboed@bilboed.com> | 2008-05-08 13:45:14 +0000 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2008-05-08 13:45:14 +0000 |
commit | 811fa1a3ccea2809a1db707560e0c4c6fe0daacd (patch) | |
tree | 9d3e8b93266c581c40082ad88d056c741c0cb938 /ext | |
parent | 78da51435c26fb1a439acdc5f589dd0ebd236241 (diff) |
ext/ffmpeg/gstffmpegcodecmap.c: Replace usage of img_convert (deprecated) by sws_scale.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_img_convert):
Replace usage of img_convert (deprecated) by sws_scale.
Fixes #529015
Diffstat (limited to 'ext')
-rw-r--r-- | ext/ffmpeg/gstffmpegcodecmap.c | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c index 6561725..f2b5c6f 100644 --- a/ext/ffmpeg/gstffmpegcodecmap.c +++ b/ext/ffmpeg/gstffmpegcodecmap.c @@ -25,6 +25,7 @@ #include <gst/gst.h> #ifdef HAVE_FFMPEG_UNINSTALLED #include <avcodec.h> +#include <libswscale/swscale.h> #else #include <ffmpeg/avcodec.h> #endif @@ -3301,22 +3302,13 @@ int gst_ffmpeg_img_convert (AVPicture * dst, int dst_pix_fmt, const AVPicture * src, int src_pix_fmt, int src_width, int src_height) { - PixFmtInfo *pf = &pix_fmt_info[src_pix_fmt]; - - pf = &pix_fmt_info[src_pix_fmt]; - switch (pf->pixel_type) { - case FF_PIXEL_PACKED: - /* nothing wrong here */ - break; - case FF_PIXEL_PLANAR: - /* patch up, so that img_copy copies all of the pixels */ - src_width = ROUND_UP_X (src_width, pf->x_chroma_shift); - src_height = ROUND_UP_X (src_height, pf->y_chroma_shift); - break; - case FF_PIXEL_PALETTE: - /* nothing wrong here */ - break; - } - return img_convert (dst, dst_pix_fmt, src, src_pix_fmt, src_width, - src_height); + struct SwsContext *ctx; + int res; + + ctx = sws_getContext (src_width, src_height, src_pix_fmt, src_width, src_height, dst_pix_fmt, 2, /* flags : bicubic */ + NULL, NULL, NULL); + res = sws_scale (ctx, (uint8_t **) src->data, (int *) src->linesize, + 2, src_width, dst->data, dst->linesize); + sws_freeContext (ctx); + return res; } |