[FFmpeg-cvslog] r32401 - in trunk/libswscale: swscale.h utils.c
stefano
subversion
Wed Sep 29 00:23:58 CEST 2010
Author: stefano
Date: Wed Sep 29 00:23:58 2010
New Revision: 32401
Log:
Deprecate sws_getContext(), use sws_alloc_context() and
sws_init_context() instead.
Modified:
trunk/libswscale/swscale.h
trunk/libswscale/utils.c
Modified: trunk/libswscale/swscale.h
==============================================================================
--- trunk/libswscale/swscale.h Wed Sep 29 00:23:53 2010 (r32400)
+++ trunk/libswscale/swscale.h Wed Sep 29 00:23:58 2010 (r32401)
@@ -44,6 +44,14 @@
#define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)
/**
+ * Those FF_API_* defines are not part of public API.
+ * They may change, break or disappear at any time.
+ */
+#ifndef FF_API_SWS_GETCONTEXT
+#define FF_API_SWS_GETCONTEXT (LIBSWSCALE_VERSION_MAJOR < 1)
+#endif
+
+/**
* Returns the LIBSWSCALE_VERSION_INT constant.
*/
unsigned swscale_version(void);
@@ -164,6 +172,7 @@ int sws_init_context(struct SwsContext *
*/
void sws_freeContext(struct SwsContext *swsContext);
+#if FF_API_SWS_GETCONTEXT
/**
* Allocates and returns a SwsContext. You need it to perform
* scaling/conversion operations using sws_scale().
@@ -178,10 +187,12 @@ void sws_freeContext(struct SwsContext *
* @return a pointer to an allocated context, or NULL in case of error
* @deprecated use sws_alloc_context() and sws_init_context()
*/
+attribute_deprecated
struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
int dstW, int dstH, enum PixelFormat dstFormat,
int flags, SwsFilter *srcFilter,
SwsFilter *dstFilter, const double *param);
+#endif
/**
* Scales the image slice in srcSlice and puts the resulting scaled
Modified: trunk/libswscale/utils.c
==============================================================================
--- trunk/libswscale/utils.c Wed Sep 29 00:23:53 2010 (r32400)
+++ trunk/libswscale/utils.c Wed Sep 29 00:23:58 2010 (r32401)
@@ -1146,6 +1146,7 @@ fail: //FIXME replace things by appropri
return -1;
}
+#if FF_API_SWS_GETCONTEXT
SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
int dstW, int dstH, enum PixelFormat dstFormat, int flags,
SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param)
@@ -1181,6 +1182,7 @@ SwsContext *sws_getContext(int srcW, int
return c;
}
+#endif
SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
float lumaSharpen, float chromaSharpen,
@@ -1564,9 +1566,19 @@ struct SwsContext *sws_getCachedContext(
}
if (!context) {
- return sws_getContext(srcW, srcH, srcFormat,
- dstW, dstH, dstFormat, flags,
- srcFilter, dstFilter, param);
+ if (!(context = sws_alloc_context()))
+ return NULL;
+ context->srcW = srcW;
+ context->srcH = srcH;
+ context->srcFormat = srcFormat;
+ context->dstFormat = dstFormat;
+ context->flags = flags;
+ context->param[0] = param[0];
+ context->param[1] = param[1];
+ if (sws_init_context(context, srcFilter, dstFilter) < 0) {
+ sws_freeContext(context);
+ return NULL;
+ }
}
return context;
}
More information about the ffmpeg-cvslog
mailing list