Here are the code related to converting yuvj420p to AV_PIX_FMIT_BGRA
......
vp->width = srcFrame->width;
vp->height = srcFrame->height;
int numBytes = avpicture_get_size(imgPixFormat, vp->width,
vp->height);
vp->bmp = new uint8_t[numBytes*sizeof(uint8_t)];
avpicture_fill((AVPicture *)vp->frame, vp->bmp, imgPixFormat,
vp->width, vp->height);
......
videoState->imgConvertContext =
sws_getCachedContext(videoState->imgConvertContext,
vp->width, vp->height, (AVPixelFormat) srcFrame->format,
vp->width, vp->height,
imgPixFormat, swsFlags, NULL, NULL, NULL);
sws_scale(videoState->imgConvertContext, srcFrame->data,
srcFrame->linesize,
0, vp->height, vp->frame->data, vp->frame->linesize);
The following is the print for the width, height, and lines size for the source
frame(yuvj420p) and the target frame(AV_PIX_FMT_BGRA)
source width 432 height 240 linesize 432 216 216 432
target width 432 height 240 linesize 1728 0 0 1728
source width 320 height 240 linesize 320 160 160 320
target width 320 height 240 linesize 1280 0 0 1280
The part that confuses me is the lines size for source frame. I don't
understand why linessize of srcFrame are different between size 432x240 and
size 320x240? Aren't they the same height but why linessize[1] and linesize[2]
are different numbers?
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user