1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

Document some of SwsContext.

Originally committed as revision 30328 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This commit is contained in:
Ramiro Polla 2010-01-16 19:04:55 +00:00
parent 0cc854e377
commit 9556124c97

View File

@ -75,16 +75,22 @@ typedef struct SwsContext {
* sws_scale() wrapper so they can be freely modified here. * sws_scale() wrapper so they can be freely modified here.
*/ */
SwsFunc swScale; SwsFunc swScale;
int srcW, srcH, dstH; int srcW; ///< Width of source luma/alpha planes.
int chrSrcW, chrSrcH, chrDstW, chrDstH; int srcH; ///< Height of source luma/alpha planes.
int dstH; ///< Height of destination luma/alpha planes.
int chrSrcW; ///< Width of source chroma planes.
int chrSrcH; ///< Height of source chroma planes.
int chrDstW; ///< Width of destination chroma planes.
int chrDstH; ///< Height of destination chroma planes.
int lumXInc, chrXInc; int lumXInc, chrXInc;
int lumYInc, chrYInc; int lumYInc, chrYInc;
enum PixelFormat dstFormat, srcFormat; ///< format 4:2:0 type is always YV12 enum PixelFormat dstFormat; ///< Destination pixel format.
enum PixelFormat srcFormat; ///< Source pixel format.
int chrSrcHSubSample, chrSrcVSubSample; int chrSrcHSubSample, chrSrcVSubSample;
int chrDstHSubSample, chrDstVSubSample; int chrDstHSubSample, chrDstVSubSample;
int vChrDrop; int vChrDrop;
int sliceDir; int sliceDir;
double param[2]; double param[2]; ///< Input parameters for scaling algorithms that need them.
uint32_t pal_yuv[256]; uint32_t pal_yuv[256];
uint32_t pal_rgb[256]; uint32_t pal_rgb[256];
@ -110,10 +116,10 @@ typedef struct SwsContext {
int vLumBufSize; int vLumBufSize;
int vChrBufSize; int vChrBufSize;
int lumMmx2FilterCodeSize; int lumMmx2FilterCodeSize; ///< Runtime-generated MMX2 horizontal fast bilinear scaler code size for luma/alpha planes.
int chrMmx2FilterCodeSize; int chrMmx2FilterCodeSize; ///< Runtime-generated MMX2 horizontal fast bilinear scaler code size for chroma planes.
uint8_t *lumMmx2FilterCode; uint8_t *lumMmx2FilterCode; ///< Runtime-generated MMX2 horizontal fast bilinear scaler code for luma/alpha planes.
uint8_t *chrMmx2FilterCode; uint8_t *chrMmx2FilterCode; ///< Runtime-generated MMX2 horizontal fast bilinear scaler code for chroma planes.
int canMMX2BeUsed; int canMMX2BeUsed;
@ -121,8 +127,8 @@ typedef struct SwsContext {
int lastInChrBuf; int lastInChrBuf;
int lumBufIndex; int lumBufIndex;
int chrBufIndex; int chrBufIndex;
int dstY; int dstY; ///< Last destination vertical line output from last slice.
int flags; int flags; ///< Flags passed by the user to select scaler algorithm, optimizations, subsampling, etc...
void * yuvTable; // pointer to the yuv->rgb table start so it can be freed() void * yuvTable; // pointer to the yuv->rgb table start so it can be freed()
uint8_t * table_rV[256]; uint8_t * table_rV[256];
uint8_t * table_gU[256]; uint8_t * table_gU[256];
@ -133,7 +139,8 @@ typedef struct SwsContext {
int contrast, brightness, saturation; // for sws_getColorspaceDetails int contrast, brightness, saturation; // for sws_getColorspaceDetails
int srcColorspaceTable[4]; int srcColorspaceTable[4];
int dstColorspaceTable[4]; int dstColorspaceTable[4];
int srcRange, dstRange; int srcRange; ///< 0 = MPG YUV range, 1 = JPG YUV range (source image).
int dstRange; ///< 0 = MPG YUV range, 1 = JPG YUV range (destination image).
int yuv2rgb_y_offset; int yuv2rgb_y_offset;
int yuv2rgb_y_coeff; int yuv2rgb_y_coeff;
int yuv2rgb_v2r_coeff; int yuv2rgb_v2r_coeff;