mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-25 12:40:01 +00:00
swscale: Add sws_alloc_set_opts()
This simplifies allocating and initializing swscale contexts with custom options. The function is internal currently but could be moved into the public header Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
7e9cd99627
commit
c382d9e8cb
@ -890,6 +890,17 @@ void ff_hcscale_fast_mmxext(SwsContext *c, int16_t *dst1, int16_t *dst2,
|
||||
int dstWidth, const uint8_t *src1,
|
||||
const uint8_t *src2, int srcW, int xInc);
|
||||
|
||||
/**
|
||||
* Allocate and return an SwsContext.
|
||||
* This is like sws_getContext() but does not perform the init step, allowing
|
||||
* the user to set additional AVOptions.
|
||||
*
|
||||
* @see sws_getContext()
|
||||
*/
|
||||
struct SwsContext *sws_alloc_set_opts(int srcW, int srcH, enum AVPixelFormat srcFormat,
|
||||
int dstW, int dstH, enum AVPixelFormat dstFormat,
|
||||
int flags, const double *param);
|
||||
|
||||
static inline void fillPlane16(uint8_t *plane, int stride, int width, int height, int y,
|
||||
int alpha, int bits, const int big_endian)
|
||||
{
|
||||
|
@ -1632,10 +1632,9 @@ fail: // FIXME replace things by appropriate error codes
|
||||
return -1;
|
||||
}
|
||||
|
||||
SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,
|
||||
int dstW, int dstH, enum AVPixelFormat dstFormat,
|
||||
int flags, SwsFilter *srcFilter,
|
||||
SwsFilter *dstFilter, const double *param)
|
||||
SwsContext *sws_alloc_set_opts(int srcW, int srcH, enum AVPixelFormat srcFormat,
|
||||
int dstW, int dstH, enum AVPixelFormat dstFormat,
|
||||
int flags, const double *param)
|
||||
{
|
||||
SwsContext *c;
|
||||
|
||||
@ -1655,6 +1654,22 @@ SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,
|
||||
c->param[1] = param[1];
|
||||
}
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,
|
||||
int dstW, int dstH, enum AVPixelFormat dstFormat,
|
||||
int flags, SwsFilter *srcFilter,
|
||||
SwsFilter *dstFilter, const double *param)
|
||||
{
|
||||
SwsContext *c;
|
||||
|
||||
c = sws_alloc_set_opts(srcW, srcH, srcFormat,
|
||||
dstW, dstH, dstFormat,
|
||||
flags, param);
|
||||
if (!c)
|
||||
return NULL;
|
||||
|
||||
if (sws_init_context(c, srcFilter, dstFilter) < 0) {
|
||||
sws_freeContext(c);
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user