mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02: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,
|
int dstWidth, const uint8_t *src1,
|
||||||
const uint8_t *src2, int srcW, int xInc);
|
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,
|
static inline void fillPlane16(uint8_t *plane, int stride, int width, int height, int y,
|
||||||
int alpha, int bits, const int big_endian)
|
int alpha, int bits, const int big_endian)
|
||||||
{
|
{
|
||||||
|
@ -1632,10 +1632,9 @@ fail: // FIXME replace things by appropriate error codes
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,
|
SwsContext *sws_alloc_set_opts(int srcW, int srcH, enum AVPixelFormat srcFormat,
|
||||||
int dstW, int dstH, enum AVPixelFormat dstFormat,
|
int dstW, int dstH, enum AVPixelFormat dstFormat,
|
||||||
int flags, SwsFilter *srcFilter,
|
int flags, const double *param)
|
||||||
SwsFilter *dstFilter, const double *param)
|
|
||||||
{
|
{
|
||||||
SwsContext *c;
|
SwsContext *c;
|
||||||
|
|
||||||
@ -1655,6 +1654,22 @@ SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,
|
|||||||
c->param[1] = param[1];
|
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) {
|
if (sws_init_context(c, srcFilter, dstFilter) < 0) {
|
||||||
sws_freeContext(c);
|
sws_freeContext(c);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user