I have already connected and opened camera successfully. But I can not transfor
frame data from AV_PIX_FMT_YUVJ422P to AV_PIX_FMT_BGR24 after decoding. As I
call method sws_scale, 'bad dst iamge pointers' shows up. Any help will be
appreciate, my code:
AVFrame* pFrame, * pFrameYUV;
pFrame = av_frame_alloc();
pFrameYUV = av_frame_alloc();
int ret, got_picture;
AVPacket* packet = (AVPacket*)av_malloc(sizeof(AVPacket));
struct SwsContext* img_convert_ctx;
img_convert_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height,
pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height, AV_PIX_FMT_BGR24,
SWS_BICUBIC, NULL, NULL, NULL);
if (av_read_frame(pFormatCtx, packet) >= 0) {
if (packet->stream_index == videoindex) {
ret = avcodec_decode_video2(pCodecCtx, pFrame, &got_picture,
packet);
if (ret < 0) {
return NULL;
}
if (got_picture) {
sws_scale(img_convert_ctx, (const unsigned char*
const*)pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameYUV->data,
pFrameYUV->linesize);
}
}
av_free_packet(packet);
}
| |
李罗
|
|
邮箱[email protected]
|
签名由 网易邮箱大师 定制
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".