<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi,<div><br></div><div>There is no function with the parameters you suggest.</div><div>You need first of all to set a SwsContext with desired parameters and then call sws_scale as show in the example below.</div><div>Good luck.</div><div><br></div><div>________________</div><div><br></div><div><div>static AVFrame* RGBtoYUV(AVFrame *frame, AVCodecContext *c){</div><div>    int ret;</div><div>    AVFrame *frameYUV=av_frame_alloc();</div><div>    assert(frameYUV);</div><div>    frameYUV->format = c->pix_fmt;</div><div>    frameYUV->width  = c->width;</div><div>    frameYUV->height = c->height;</div><div><br></div><div>    int numBytes=avpicture_get_size(AV_PIX_FMT_YUV420P, c->width, c->height);</div><div>    assert(numBytes);</div><div>    uint8_t *dataBuffer = (uint8_t*) av_malloc (numBytes*sizeof(uint8_t));</div><div>    </div><div>    frameYUV->data[0]=dataBuffer;</div><div><br></div><div>    avpicture_fill((AVPicture *)frameYUV, dataBuffer, AV_PIX_FMT_YUV420P, c->width, c->height);  </div><div><br></div><div>    struct SwsContext * YUVScaleCtx = sws_getContext</div><div>    (</div><div>        c->width,</div><div>        c->height,</div><div>        AV_PIX_FMT_RGB24,</div><div>        c->width,</div><div>        c->height,</div><div>        AV_PIX_FMT_YUV420P,</div><div>        SWS_BILINEAR,</div><div>        0,</div><div>        0,</div><div>        0</div><div>    );</div><div>    ret = sws_scale(</div><div>        YUVScaleCtx,</div><div>        (const uint8_t *const *)frame->data,</div><div>        frame->linesize, //stride is the size of a line + potential padding for performance issue</div><div>        0,</div><div>        c->height,</div><div>        frameYUV->data,</div><div>        frameYUV->linesize</div><div>    );</div><div>    assert(ret);</div><div>    return frameYUV;</div><div>}</div></div><div><br></div><div><br></div><div><br><div><div><div>Le 7 sept. 2015 à 10:31, qw <<a href="mailto:applemax82@163.com">applemax82@163.com</a>> a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="line-height: 1.7; font-size: 14px; font-family: Arial;"><div>Hi,</div><div><br></div><div>There are too many ffmpeg functions. I want to find one function, which can convert one pixel format into another, and the argument is AVFrame. Does ffmpeg has this kind of function?</div><div><br></div><div><br></div><div>Thanks!</div><div><br></div><div>B.R.</div><div><br></div><div>Andrew</div></div><br><br><span title="neteasefooter"> <br class="webkit-block-placeholder"></span>_______________________________________________<br>Libav-user mailing list<br><a href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a><br><a href="http://ffmpeg.org/mailman/listinfo/libav-user">http://ffmpeg.org/mailman/listinfo/libav-user</a><br></blockquote></div><br></div></div></body></html>