summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2008-05-08 13:45:14 +0000
committerEdward Hervey <bilboed@bilboed.com>2008-05-08 13:45:14 +0000
commit811fa1a3ccea2809a1db707560e0c4c6fe0daacd (patch)
tree9d3e8b93266c581c40082ad88d056c741c0cb938 /ext
parent78da51435c26fb1a439acdc5f589dd0ebd236241 (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.c28
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;
}