av_frame_alloc alone is not enough, you also need to allocate the
memory for the image data, e.g. using av_image_alloc

see e.g. 
https://ffmpeg.org/doxygen/trunk/doc_2examples_2decoding_encoding_8c-example.html

On Mon, Jul 12, 2021 at 1:09 PM 李罗 <bruce_lee0...@163.com> wrote:
>
>
> 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);
>      }
>
> | |
> 李罗
> |
> |
> 邮箱bruce_lee0...@163.com
> |
>
> 签名由 网易邮箱大师 定制
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to