On Thu, Oct 20, 2016 at 10:07 AM, Anton Khirnov <an...@khirnov.net> wrote: > It is more efficient and so preferred over allocating the buffers > manually. > --- > doc/examples/encode_video.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/doc/examples/encode_video.c b/doc/examples/encode_video.c > index bd10d40..b8c9631 100644 > --- a/doc/examples/encode_video.c > +++ b/doc/examples/encode_video.c > @@ -88,16 +88,16 @@ int main(int argc, char **argv) > exit(1); > } > > - ret = av_image_alloc(picture->data, picture->linesize, c->width, > c->height, > - c->pix_fmt, 32); > - if (ret < 0) { > - fprintf(stderr, "could not alloc raw picture buffer\n"); > - exit(1); > - } > picture->format = c->pix_fmt; > picture->width = c->width; > picture->height = c->height; > > + ret = av_frame_get_buffer(picture, 32); > + if (ret < 0) { > + fprintf(stderr, "could not alloc the frame data\n"); > + exit(1); > + } > + > /* encode 1 second of video */ > for(i=0;i<25;i++) { > av_init_packet(&pkt); > @@ -105,6 +105,12 @@ int main(int argc, char **argv) > pkt.size = 0; > > fflush(stdout); > + > + /* make sure the frame data is writable */ > + ret = av_frame_make_writable(picture); > + if (ret < 0) > + exit(1); > + > /* prepare a dummy image */ > /* Y */ > for(y=0;y<c->height;y++) { > @@ -159,7 +165,6 @@ int main(int argc, char **argv) > fclose(f); > > avcodec_free_context(&c); > - av_freep(&picture->data[0]); > av_frame_free(&picture); > > return 0; > --
looks ok -- Vittorio _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel