diff options
author | Pedro Arthur <bygrandao@gmail.com> | 2015-08-18 11:47:55 -0300 |
---|---|---|
committer | Pedro Arthur <bygrandao@gmail.com> | 2015-08-19 10:43:52 -0300 |
commit | 62d176de1224f6b9921a53171e5daa7460d5a772 (patch) | |
tree | d5586b93eaf7f2071b0f4018eb06b64ec48c545c /libswscale/swscale_internal.h | |
parent | fffae8e605c8a665eac0ae63c3c84f60efbec73e (diff) | |
download | ffmpeg-62d176de1224f6b9921a53171e5daa7460d5a772.tar.gz |
swscale: refactor vertical scaler
Diffstat (limited to 'libswscale/swscale_internal.h')
-rw-r--r-- | libswscale/swscale_internal.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index 4e1cfc14cb..0d4ce331f4 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -1002,6 +1002,15 @@ typedef struct FilterContext int xInc; } FilterContext; +typedef struct VScalerContext +{ + uint16_t *filter[2]; + int32_t *filter_pos; + int filter_size; + int isMMX; + void *pfn; +} VScalerContext; + // warp input lines in the form (src + width*i + j) to slice format (line[i][j]) int ff_init_slice_from_src(SwsSlice * s, uint8_t *src[4], int stride[4], int srcW, int lumY, int lumH, int chrY, int chrH); @@ -1033,9 +1042,18 @@ int ff_init_desc_chscale(SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst int ff_init_desc_no_chr(SwsFilterDescriptor *desc, SwsSlice * src, SwsSlice *dst); +/// initializes vertical scaling descriptors +int ff_init_vscale(SwsContext *c, SwsFilterDescriptor *desc, SwsSlice *src, SwsSlice *dst); + +/// setup vertical scaler functions +void ff_init_vscale_pfn(SwsContext *c, yuv2planar1_fn yuv2plane1, yuv2planarX_fn yuv2planeX, + yuv2interleavedX_fn yuv2nv12cX, yuv2packed1_fn yuv2packed1, yuv2packed2_fn yuv2packed2, + yuv2packedX_fn yuv2packedX, yuv2anyX_fn yuv2anyX, int use_mmx); + //number of extra lines to process #define MAX_LINES_AHEAD 4 - +// enable use of refactored scaler code #define NEW_FILTER + #endif /* SWSCALE_SWSCALE_INTERNAL_H */ |