Improve frame allocation
This commit is contained in:
1 parent
2dcdfaccf5
commit
b187bf6424
3 files changed
+107
-111
No files matched your search
+67
-27
@@ -52,7 +52,7 @@ typedef unsigned long long UInt64;
|
||||
static inline Void* xMallocMem( SizeT nitems )
|
||||
{
|
||||
Void *d;
|
||||
if ( (d = malloc( nitems )) == NULL )
|
||||
if( ( d = malloc( nitems ) ) == NULL )
|
||||
{
|
||||
printf( "malloc failed.\n" );
|
||||
return NULL;
|
||||
@@ -64,13 +64,13 @@ static inline Void* xCallocMem( SizeT nitems, SizeT size )
|
||||
{
|
||||
size_t padded_size = nitems * size;
|
||||
Void *d = xMallocMem( padded_size );
|
||||
memset( d, 0, (int) padded_size );
|
||||
memset( d, 0, ( int )padded_size );
|
||||
return d;
|
||||
}
|
||||
|
||||
static inline Void xFreePointer( Void *pointer )
|
||||
{
|
||||
if ( pointer != NULL )
|
||||
if( pointer != NULL )
|
||||
{
|
||||
free( pointer );
|
||||
pointer = NULL;
|
||||
@@ -96,15 +96,15 @@ Int getMem2D( T*** array2D, Int dim0, Int dim1 )
|
||||
{
|
||||
Int i;
|
||||
|
||||
if ( (*array2D = (T**) xMallocMem( dim0 * sizeof(T*) )) == NULL ) printf(
|
||||
"get_mem2Dint: array2D" );
|
||||
if ( (*(*array2D) = (T*) xCallocMem( dim0 * dim1, sizeof(T) )) == NULL ) printf(
|
||||
"get_mem2Dint: array2D" );
|
||||
if( ( *array2D = ( T** )xMallocMem( dim0 * sizeof(T*) ) ) == NULL )
|
||||
printf( "get_mem2Dint: array2D" );
|
||||
if( ( *( *array2D ) = ( T* )xCallocMem( dim0 * dim1, sizeof(T) ) ) == NULL )
|
||||
printf( "get_mem2Dint: array2D" );
|
||||
|
||||
for ( i = 1; i < dim0; i++ )
|
||||
(*array2D)[i] = (*array2D)[i - 1] + dim1;
|
||||
for( i = 1; i < dim0; i++ )
|
||||
( *array2D )[i] = ( *array2D )[i - 1] + dim1;
|
||||
|
||||
return dim0 * (sizeof(T*) + dim1 * sizeof(T));
|
||||
return dim0 * ( sizeof(T*) + dim1 * sizeof(T) );
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
@@ -112,13 +112,13 @@ Int getMem3D( T**** array3D, Int dim0, Int dim1, Int dim2 )
|
||||
{
|
||||
Int i, mem_size = dim0 * sizeof(T**);
|
||||
|
||||
if ( ((*array3D) = (T***) xMallocMem( dim0 * sizeof(T**) )) == NULL ) printf(
|
||||
"get_mem3Dint: array3D" );
|
||||
if( ( ( *array3D ) = ( T*** )xMallocMem( dim0 * sizeof(T**) ) ) == NULL )
|
||||
printf( "get_mem3Dint: array3D" );
|
||||
|
||||
mem_size += getMem2D( *array3D, dim0 * dim1, dim2 );
|
||||
|
||||
for ( i = 1; i < dim0; i++ )
|
||||
(*array3D)[i] = (*array3D)[i - 1] + dim1;
|
||||
for( i = 1; i < dim0; i++ )
|
||||
( *array3D )[i] = ( *array3D )[i - 1] + dim1;
|
||||
|
||||
return mem_size;
|
||||
}
|
||||
@@ -128,13 +128,13 @@ Int getMem4D( T***** array4D, Int dim0, Int dim1, Int dim2, Int dim3 )
|
||||
{
|
||||
int i, mem_size = dim0 * sizeof(int***);
|
||||
|
||||
if ( ((*array4D) = (T****) xMallocMem( dim0 * sizeof(T***) )) == NULL ) printf(
|
||||
"get_mem4Dint: array4D" );
|
||||
if( ( ( *array4D ) = ( T**** )xMallocMem( dim0 * sizeof(T***) ) ) == NULL )
|
||||
printf( "get_mem4Dint: array4D" );
|
||||
|
||||
mem_size += getMem3D( *array4D, dim0 * dim1, dim2, dim3 );
|
||||
|
||||
for ( i = 1; i < dim0; i++ )
|
||||
(*array4D)[i] = (*array4D)[i - 1] + dim1;
|
||||
for( i = 1; i < dim0; i++ )
|
||||
( *array4D )[i] = ( *array4D )[i - 1] + dim1;
|
||||
|
||||
return mem_size;
|
||||
}
|
||||
@@ -144,13 +144,40 @@ Int getMem5D( T****** array5D, Int dim0, Int dim1, Int dim2, Int dim3, Int dim4
|
||||
{
|
||||
int i, mem_size = dim0 * sizeof(T****);
|
||||
|
||||
if ( ((*array5D) = (T*****) xMallocMem( dim0 * sizeof(T****) )) == NULL ) printf(
|
||||
"get_mem5Dint: array5D" );
|
||||
if( ( ( *array5D ) = ( T***** )xMallocMem( dim0 * sizeof(T****) ) ) == NULL )
|
||||
printf( "get_mem5Dint: array5D" );
|
||||
|
||||
mem_size += getMem4D( *array5D, dim0 * dim1, dim2, dim3, dim4 );
|
||||
|
||||
for ( i = 1; i < dim0; i++ )
|
||||
(*array5D)[i] = (*array5D)[i - 1] + dim1;
|
||||
for( i = 1; i < dim0; i++ )
|
||||
( *array5D )[i] = ( *array5D )[i - 1] + dim1;
|
||||
|
||||
return mem_size;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
Int getMem3ImageComponents( T**** array3D, Int dim1, Int dim2, Int ratioDim1Chroma, Int ratioDim2Chroma )
|
||||
{
|
||||
Int dim0 = 3;
|
||||
Int i, mem_size = ( dim1 * dim2 + dim1 / ratioDim1Chroma * dim2 / ratioDim2Chroma * 2 ) * sizeof(T);
|
||||
|
||||
mem_size += getMem2D<T*>( array3D, dim0, dim1 );
|
||||
|
||||
if( ( ( *array3D )[0][0] = ( T* )xCallocMem( dim1 * dim2 + dim1 / ratioDim1Chroma * dim2 / ratioDim2Chroma * 2, sizeof(T) ) ) == NULL )
|
||||
printf( "getMem3DImageComponents: array1D" );
|
||||
|
||||
// Luma
|
||||
for( i = 1; i < dim1; i++ )
|
||||
( *array3D )[0][i] = ( *array3D )[0][i - 1] + dim2;
|
||||
|
||||
// Chroma
|
||||
( *array3D )[1][0] = ( *array3D )[0][0] + dim2 * dim1;
|
||||
for( i = 1; i < dim1 / ratioDim1Chroma; i++ )
|
||||
( *array3D )[1][i] = ( *array3D )[1][i - 1] + dim2;
|
||||
|
||||
( *array3D )[2][0] = ( *array3D )[1][0] + dim2 / ratioDim2Chroma * dim1 / ratioDim1Chroma;
|
||||
for( i = 1; i < dim1 / ratioDim1Chroma; i++ )
|
||||
( *array3D )[2][i] = ( *array3D )[2][i - 1] + dim2 / ratioDim2Chroma;
|
||||
|
||||
return mem_size;
|
||||
}
|
||||
@@ -167,9 +194,9 @@ Void freeMem1D( T *array1D )
|
||||
template<typename T>
|
||||
Void freeMem2D( T** array2D )
|
||||
{
|
||||
if ( array2D )
|
||||
if( array2D )
|
||||
{
|
||||
if ( *array2D )
|
||||
if( *array2D )
|
||||
xFreeMem( *array2D );
|
||||
else
|
||||
printf( "free_mem2Dint: trying to free unused memory" );
|
||||
@@ -185,7 +212,7 @@ Void freeMem2D( T** array2D )
|
||||
template<typename T>
|
||||
Void freeMem3D( T*** array3D )
|
||||
{
|
||||
if ( array3D )
|
||||
if( array3D )
|
||||
{
|
||||
freeMem2D( *array3D );
|
||||
xFreeMem( array3D );
|
||||
@@ -199,7 +226,7 @@ Void freeMem3D( T*** array3D )
|
||||
template<typename T>
|
||||
Void freeMem4D( T**** array4D )
|
||||
{
|
||||
if ( array4D )
|
||||
if( array4D )
|
||||
{
|
||||
freeMem3D( *array4D );
|
||||
xFreeMem( array4D );
|
||||
@@ -213,7 +240,7 @@ Void freeMem4D( T**** array4D )
|
||||
template<typename T>
|
||||
Void freeMem5D( T***** array5D )
|
||||
{
|
||||
if ( array5D )
|
||||
if( array5D )
|
||||
{
|
||||
freeMem4D( *array5D );
|
||||
xFreeMem( array5D );
|
||||
@@ -224,6 +251,19 @@ Void freeMem5D( T***** array5D )
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
Void freeMem3ImageComponents( T*** array3D )
|
||||
{
|
||||
if( array3D )
|
||||
{
|
||||
if( **array3D )
|
||||
xFreeMem( **array3D );
|
||||
|
||||
freeMem2D<T*>( array3D );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // NAMESPACE
|
||||
|
||||
#endif // __LIBMEMORY_H__
|
||||
@@ -32,10 +32,7 @@ namespace plaYUVer
|
||||
|
||||
PlaYUVerFrame::PlaYUVerFrame( UInt width, UInt height, Int pel_format )
|
||||
{
|
||||
m_pppcInputPel[0] = NULL;
|
||||
m_pppcInputPel[1] = NULL;
|
||||
m_pppcInputPel[2] = NULL;
|
||||
|
||||
m_pppcInputPel = NULL;
|
||||
m_uiWidth = width;
|
||||
m_uiHeight = height;
|
||||
m_iPixelFormat = pel_format;
|
||||
@@ -45,48 +42,32 @@ PlaYUVerFrame::PlaYUVerFrame( UInt width, UInt height, Int pel_format )
|
||||
switch( m_iPixelFormat )
|
||||
{
|
||||
case YUV420p:
|
||||
get_mem2Dpel( &( m_pppcInputPel[LUMA] ), m_uiHeight, m_uiWidth );
|
||||
get_mem2Dpel( &( m_pppcInputPel[CHROMA_U] ), m_uiHeight / 2, m_uiWidth / 2 );
|
||||
get_mem2Dpel( &( m_pppcInputPel[CHROMA_V] ), m_uiHeight / 2, m_uiWidth / 2 );
|
||||
getMem3ImageComponents<Pel>( &m_pppcInputPel, m_uiHeight, m_uiWidth, 2, 2 );
|
||||
break;
|
||||
case YUV444p:
|
||||
get_mem2Dpel( &( m_pppcInputPel[LUMA] ), m_uiHeight, m_uiWidth );
|
||||
get_mem2Dpel( &( m_pppcInputPel[CHROMA_U] ), m_uiHeight, m_uiWidth );
|
||||
get_mem2Dpel( &( m_pppcInputPel[CHROMA_V] ), m_uiHeight, m_uiWidth );
|
||||
getMem3ImageComponents<Pel>( &m_pppcInputPel, m_uiHeight, m_uiWidth, 1, 1 );
|
||||
break;
|
||||
case YUV422p:
|
||||
get_mem2Dpel( &( m_pppcInputPel[LUMA] ), m_uiHeight, m_uiWidth );
|
||||
get_mem2Dpel( &( m_pppcInputPel[CHROMA_U] ), m_uiHeight, m_uiWidth / 2);
|
||||
get_mem2Dpel( &( m_pppcInputPel[CHROMA_V] ), m_uiHeight, m_uiWidth / 2 );
|
||||
getMem3ImageComponents<Pel>( &m_pppcInputPel, m_uiHeight, m_uiWidth, 1, 2 );
|
||||
break;
|
||||
case YUV410p:
|
||||
case YUV411p:
|
||||
get_mem2Dpel( &( m_pppcInputPel[LUMA] ), m_uiHeight, m_uiWidth );
|
||||
get_mem2Dpel( &( m_pppcInputPel[CHROMA_U] ), m_uiHeight, m_uiWidth );
|
||||
get_mem2Dpel( &( m_pppcInputPel[CHROMA_V] ), m_uiHeight, m_uiWidth );
|
||||
break;
|
||||
case GRAY:
|
||||
get_mem2Dpel( &( m_pppcInputPel[0] ), m_uiHeight, m_uiWidth );
|
||||
getMem3ImageComponents<Pel>( &m_pppcInputPel, m_uiHeight, m_uiWidth, 4, 4 );
|
||||
break;
|
||||
case RGB8:
|
||||
get_mem2Dpel( &( m_pppcInputPel[COLOR_R] ), m_uiHeight, m_uiWidth );
|
||||
get_mem2Dpel( &( m_pppcInputPel[COLOR_G] ), m_uiHeight, m_uiWidth );
|
||||
get_mem2Dpel( &( m_pppcInputPel[COLOR_B] ), m_uiHeight, m_uiWidth );
|
||||
getMem3ImageComponents<Pel>( &m_pppcInputPel, m_uiHeight, m_uiWidth, 1, 1 );
|
||||
break;
|
||||
}
|
||||
getMem1D<Pel>( &m_pcRGBPelInterlaced, m_uiHeight * m_uiWidth * 3 );
|
||||
|
||||
openPixfc();
|
||||
}
|
||||
|
||||
PlaYUVerFrame::~PlaYUVerFrame()
|
||||
{
|
||||
if( m_pppcInputPel[0] )
|
||||
free_mem2Dpel( m_pppcInputPel[LUMA] );
|
||||
if( m_pppcInputPel[1] )
|
||||
free_mem2Dpel( m_pppcInputPel[CHROMA_U] );
|
||||
if( m_pppcInputPel[2] )
|
||||
free_mem2Dpel( m_pppcInputPel[CHROMA_V] );
|
||||
if( m_pppcInputPel )
|
||||
freeMem3ImageComponents<Pel>( m_pppcInputPel );
|
||||
|
||||
if( m_pcRGBPelInterlaced )
|
||||
freeMem1D<UChar>( m_pcRGBPelInterlaced );
|
||||
@@ -94,15 +75,15 @@ PlaYUVerFrame::~PlaYUVerFrame()
|
||||
closePixfc();
|
||||
}
|
||||
|
||||
|
||||
Void PlaYUVerFrame::openPixfc()
|
||||
{
|
||||
#ifdef USE_PIXFC
|
||||
m_pcPixfc = NULL;
|
||||
PixFcPixelFormat input_format = PixFcYUV420P;
|
||||
PixFcFlag flags = (PixFcFlag)(PixFcFlag_Default + PixFcFlag_NNbResamplingOnly);
|
||||
UInt input_row_size = m_uiWidth * 1.5; // size of each row in ARGB output buffer (in bytes)
|
||||
if (create_pixfc(&m_pcPixfc, input_format, PixFcRGB24, m_uiWidth, m_uiHeight, input_row_size, m_uiWidth * 3, flags ) != 0) {
|
||||
UInt input_row_size = m_uiWidth;
|
||||
if (create_pixfc(&m_pcPixfc, input_format, PixFcRGB24, m_uiWidth, m_uiHeight, input_row_size, m_uiWidth * 3, flags ) != 0)
|
||||
{
|
||||
fprintf(stderr, "Error creating struct pixfc\n");
|
||||
m_pcPixfc = NULL;
|
||||
return;
|
||||
@@ -114,57 +95,31 @@ Void PlaYUVerFrame::closePixfc()
|
||||
{
|
||||
#ifdef USE_PIXFC
|
||||
if( m_pcPixfc )
|
||||
destroy_pixfc(m_pcPixfc);
|
||||
destroy_pixfc(m_pcPixfc);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef USE_PIXFC
|
||||
inline Void PlaYUVerFrame::FrametoRGB8Pixfc()
|
||||
{
|
||||
Pel* pInputPelY = &( m_pppcInputPel[LUMA][0][0] );
|
||||
Pel *pRGBPelR = NULL, *pRGBPelG = NULL, *pRGBPelB = NULL;
|
||||
|
||||
if( m_pppcRGBPel )
|
||||
{
|
||||
pRGBPelR = &( m_pppcRGBPel[COLOR_R][0][0] );
|
||||
pRGBPelG = &( m_pppcRGBPel[COLOR_G][0][0] );
|
||||
pRGBPelB = &( m_pppcRGBPel[COLOR_B][0][0] );
|
||||
}
|
||||
|
||||
Pel* pcRGBPelInterlaced = m_pcRGBPelInterlaced;
|
||||
|
||||
switch( m_iPixelFormat )
|
||||
{
|
||||
case YUV420p:
|
||||
m_pcPixfc->convert(m_pcPixfc, pInputPelY, pRGBPelR);
|
||||
for( UInt y = 0; y < m_uiHeight; y++ )
|
||||
for( UInt x = 0; x < m_uiWidth; x++ )
|
||||
{
|
||||
*pcRGBPelInterlaced++ = *pRGBPelR++;
|
||||
*pcRGBPelInterlaced++ = *pRGBPelG++;
|
||||
*pcRGBPelInterlaced++ = *pRGBPelB++;
|
||||
}
|
||||
case YUV420p:
|
||||
m_pcPixfc->convert(m_pcPixfc, m_pppcInputPel, m_pcRGBPelInterlaced);
|
||||
break;
|
||||
case YUV422p:
|
||||
case YUV422p:
|
||||
break;
|
||||
case YUV444p:
|
||||
m_pcPixfc->convert(m_pcPixfc, pInputPelY, pRGBPelR);
|
||||
for( UInt y = 0; y < m_uiHeight; y++ )
|
||||
for( UInt x = 0; x < m_uiWidth; x++ )
|
||||
{
|
||||
*pcRGBPelInterlaced++ = *pRGBPelR++;
|
||||
*pcRGBPelInterlaced++ = *pRGBPelG++;
|
||||
*pcRGBPelInterlaced++ = *pRGBPelB++;
|
||||
}
|
||||
case YUV444p:
|
||||
m_pcPixfc->convert(m_pcPixfc, m_pppcInputPel, m_pcRGBPelInterlaced);
|
||||
break;
|
||||
case YUV410p:
|
||||
case YUV411p:
|
||||
case YUV410p:
|
||||
case YUV411p:
|
||||
break;
|
||||
case GRAY:
|
||||
case GRAY:
|
||||
break;
|
||||
case RGB8:
|
||||
case RGB8:
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
// No action.
|
||||
break;
|
||||
}
|
||||
@@ -216,7 +171,6 @@ static inline Void yuvToRgb( Int iY, Int iU, Int iV, Int &iR, Int &iG, Int &iB )
|
||||
iB = 255;
|
||||
}
|
||||
|
||||
|
||||
template<typename T>
|
||||
Void rgbToyuv( T iR, T iG, T iB, T &iY, T &iU, T &iV )
|
||||
{
|
||||
@@ -461,26 +415,28 @@ UInt64 PlaYUVerFrame::getBytesPerFrame()
|
||||
|
||||
Pixel PlaYUVerFrame::ConvertPixel( Pixel sInputPixel, ColorSpace eOutputSpace )
|
||||
{
|
||||
Pixel sOutputPixel = {COLOR_INVALID,0,0,0};
|
||||
Pixel sOutputPixel =
|
||||
{
|
||||
COLOR_INVALID,
|
||||
0,
|
||||
0,
|
||||
0 };
|
||||
|
||||
if( sInputPixel.color_space == eOutputSpace )
|
||||
return sInputPixel;
|
||||
|
||||
if( eOutputSpace == COLOR_RGB )
|
||||
{
|
||||
yuvToRgb( sInputPixel.Luma, sInputPixel.ChromaU, sInputPixel.ChromaU,
|
||||
sOutputPixel.ColorR, sOutputPixel.ColorG, sOutputPixel.ColorB );
|
||||
yuvToRgb( sInputPixel.Luma, sInputPixel.ChromaU, sInputPixel.ChromaU, sOutputPixel.ColorR, sOutputPixel.ColorG, sOutputPixel.ColorB );
|
||||
}
|
||||
if( eOutputSpace == COLOR_YUV )
|
||||
{
|
||||
rgbToyuv( sInputPixel.ColorR, sInputPixel.ColorG, sInputPixel.ColorB,
|
||||
sOutputPixel.Luma, sOutputPixel.ChromaU, sOutputPixel.ChromaU );
|
||||
rgbToyuv( sInputPixel.ColorR, sInputPixel.ColorG, sInputPixel.ColorB, sOutputPixel.Luma, sOutputPixel.ChromaU, sOutputPixel.ChromaU );
|
||||
}
|
||||
return sOutputPixel;
|
||||
}
|
||||
|
||||
|
||||
Pixel PlaYUVerFrame::getPixelValue(const QPoint &pos, ColorSpace space)
|
||||
Pixel PlaYUVerFrame::getPixelValue( const QPoint &pos, ColorSpace space )
|
||||
{
|
||||
Pixel pixel_value;
|
||||
switch( m_iPixelFormat )
|
||||
@@ -488,8 +444,8 @@ Pixel PlaYUVerFrame::getPixelValue(const QPoint &pos, ColorSpace space)
|
||||
case YUV420p:
|
||||
pixel_value.color_space = COLOR_YUV;
|
||||
pixel_value.Luma = m_pppcInputPel[LUMA][pos.y()][pos.x()];
|
||||
pixel_value.ChromaU = m_pppcInputPel[CHROMA_U][pos.y()>>1][pos.x()>>1];
|
||||
pixel_value.ChromaV = m_pppcInputPel[CHROMA_V][pos.y()>>1][pos.x()>>1];
|
||||
pixel_value.ChromaU = m_pppcInputPel[CHROMA_U][pos.y() >> 1][pos.x() >> 1];
|
||||
pixel_value.ChromaV = m_pppcInputPel[CHROMA_V][pos.y() >> 1][pos.x() >> 1];
|
||||
break;
|
||||
case YUV444p:
|
||||
pixel_value.Luma = m_pppcInputPel[LUMA][pos.y()][pos.x()];
|
||||
@@ -499,14 +455,14 @@ Pixel PlaYUVerFrame::getPixelValue(const QPoint &pos, ColorSpace space)
|
||||
case YUV422p:
|
||||
pixel_value.color_space = COLOR_YUV;
|
||||
pixel_value.Luma = m_pppcInputPel[LUMA][pos.y()][pos.x()];
|
||||
pixel_value.ChromaU = m_pppcInputPel[CHROMA_U][pos.y()][pos.x()>>1];
|
||||
pixel_value.ChromaV = m_pppcInputPel[CHROMA_V][pos.y()][pos.x()>>1];
|
||||
pixel_value.ChromaU = m_pppcInputPel[CHROMA_U][pos.y()][pos.x() >> 1];
|
||||
pixel_value.ChromaV = m_pppcInputPel[CHROMA_V][pos.y()][pos.x() >> 1];
|
||||
break;
|
||||
case YUV410p:
|
||||
pixel_value.color_space = COLOR_YUV;
|
||||
pixel_value.Luma = m_pppcInputPel[LUMA][pos.y()][pos.x()];
|
||||
pixel_value.ChromaU = m_pppcInputPel[CHROMA_U][pos.y()>>2][pos.x()>>2];
|
||||
pixel_value.ChromaV = m_pppcInputPel[CHROMA_V][pos.y()>>2][pos.x()>>2];
|
||||
pixel_value.ChromaU = m_pppcInputPel[CHROMA_U][pos.y() >> 2][pos.x() >> 2];
|
||||
pixel_value.ChromaV = m_pppcInputPel[CHROMA_V][pos.y() >> 2][pos.x() >> 2];
|
||||
break;
|
||||
case GRAY:
|
||||
pixel_value.color_space = COLOR_YUV;
|
||||
@@ -527,7 +483,6 @@ Pixel PlaYUVerFrame::getPixelValue(const QPoint &pos, ColorSpace space)
|
||||
return pixel_value;
|
||||
}
|
||||
|
||||
|
||||
// Format conversion
|
||||
|
||||
#ifdef USE_OPENCV
|
||||
@@ -536,4 +491,5 @@ cv::Mat PlaYUVerFrame::getCvMat()
|
||||
return cv::Mat();
|
||||
}
|
||||
#endif
|
||||
} // NAMESPACE
|
||||
}
|
||||
// NAMESPACE
|
||||
@@ -128,7 +128,7 @@ private:
|
||||
Int m_iPixelFormat;
|
||||
|
||||
Bool m_bHasRGBPel;
|
||||
Pel** m_pppcInputPel[3];
|
||||
Pel*** m_pppcInputPel;
|
||||
UChar* m_pcRGBPelInterlaced;
|
||||
|
||||
Void openPixfc();
|
||||
|
||||
Reference in new issue
Block a user