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
This commit is contained in:
Edward Hervey 2008-05-08 13:45:14 +00:00
parent 78da51435c
commit 811fa1a3cc
2 changed files with 15 additions and 17 deletions

View file

@ -1,3 +1,9 @@
2008-05-08 Edward Hervey <edward.hervey@collabora.co.uk>
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_img_convert):
Replace usage of img_convert (deprecated) by sws_scale.
Fixes #529015
2008-05-08 Edward Hervey <edward.hervey@collabora.co.uk>
* configure.ac:

View file

@ -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];
struct SwsContext *ctx;
int res;
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);
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;
}