sws_scale에서 풀린 RGB 이미지 반전 문제
YUV: linesize[0] = width + padding size(16+16),linesize[1]=linesize[0]/2
데이터[0], 데이터[1], 데이터[2]는 각각 yuv를 대표한다
RGB: linesize[0] = width*pixel_RGB 데이터[0]용 size for packet rgb
AVFrame* pFrame; // Frame
AVCodecContext* pContext; // Codec Context
int nUsedBytes = avcodec_decode_video(pContext, pFrame, &nFrame, pSrcBuffer, nSrcLength);
if(nUsedBytes > 0)
{
AVFrame out_pic;
SwsContext* img_convert_ctx = sws_getContext(pContext->width, pContext->height
, pContext->pix_fmt, nDestW, nDestH,(PixelFormat)PIX_FMT_BGR24,SWS_BICUBIC, NULL, NULL, NULL);
if(img_convert_ctx != NULL)
{
if(avpicture_alloc((AVPicture *)&out_pic, PIX_FMT_RGB24, nDestW, nDestH)>=0)
{
pFrame->data[0] = pFrame->data[0]+pFrame->linesize[0]*(pContext->height-1);
pFrame->data[1] = pFrame->data[1]+pFrame->linesize[0]*pContext->height/4-1;
pFrame->data[2] = pFrame->data[2]+pFrame->linesize[0]*pContext->height/4-1;
pFrame->linesize[0] *= -1;
pFrame->linesize[1] *= -1;
pFrame->linesize[2] *= -1;
sws_scale(img_convert_ctx, pFrame->data, pFrame->linesize, 0, pContext->height
, out_pic.data, out_pic.linesize);
avpicture_free((AVPicture *)&out_pic);
}
sws_freeContext(img_convert_ctx);
}
}
다음으로 이동:http://www.rosoo.net/a/201112/15492.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.