mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
unscaled BGR24 -> YV12
Originally committed as revision 4624 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
This commit is contained in:
parent
21316f3c84
commit
ec22603f79
@ -42,6 +42,7 @@ untested special converters
|
||||
YUY2/BGR15/BGR16/BGR24/BGR32/RGB24/RGB32 -> same format
|
||||
BGR24 -> BGR32 & RGB24 -> RGB32
|
||||
BGR32 -> BGR24 & RGB32 -> RGB24
|
||||
BGR24 -> YV12
|
||||
*/
|
||||
|
||||
#include <inttypes.h>
|
||||
@ -1227,6 +1228,18 @@ static void bgr15to16Wrapper(SwsContext *c, uint8_t* src[], int srcStride[], int
|
||||
}
|
||||
}
|
||||
|
||||
static void bgr24toyv12Wrapper(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
|
||||
int srcSliceH, uint8_t* dst[], int dstStride[]){
|
||||
|
||||
rgb24toyv12(
|
||||
src[0],
|
||||
dst[0]+ srcSliceY *dstStride[0],
|
||||
dst[1]+(srcSliceY>>1)*dstStride[1],
|
||||
dst[2]+(srcSliceY>>1)*dstStride[2],
|
||||
c->srcW, srcSliceH,
|
||||
dstStride[0], dstStride[1], srcStride[0]);
|
||||
}
|
||||
|
||||
|
||||
/* unscaled copy like stuff (assumes nearly identical formats) */
|
||||
static void simpleCopy(SwsContext *c, uint8_t* srcParam[], int srcStrideParam[], int srcSliceY,
|
||||
@ -1449,6 +1462,17 @@ SwsContext *getSwsContext(int srcW, int srcH, int srcFormat, int dstW, int dstH,
|
||||
vo_format_name(srcFormat), vo_format_name(dstFormat));
|
||||
return c;
|
||||
}
|
||||
|
||||
/* bgr24toYV12 */
|
||||
if(srcFormat==IMGFMT_BGR24 && dstFormat==IMGFMT_YV12)
|
||||
{
|
||||
c->swScale= bgr24toyv12Wrapper;
|
||||
|
||||
if(flags&SWS_PRINT_INFO)
|
||||
printf("SwScaler: using unscaled %s -> %s special converter\n",
|
||||
vo_format_name(srcFormat), vo_format_name(dstFormat));
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
if(cpuCaps.hasMMX2)
|
||||
|
Loading…
Reference in New Issue
Block a user