diff options
author | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2011-07-08 09:52:07 +0200 |
---|---|---|
committer | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2011-07-10 18:03:17 +0200 |
commit | 2e5a9e580cef8a30a8d724cc8ff93897f4903d06 (patch) | |
tree | 87a3a1aa68e53eff0fb1b03b79fc8d9a8feabe77 /doc/examples | |
parent | 2420763638bef385c8116a44ff5c0d2c15589494 (diff) | |
download | ffmpeg-2e5a9e580cef8a30a8d724cc8ff93897f4903d06.tar.gz |
examples/encoding.c: use av_image_alloc() for allocating an image buffer
Simplify.
Diffstat (limited to 'doc/examples')
-rw-r--r-- | doc/examples/encoding.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/doc/examples/encoding.c b/doc/examples/encoding.c index ff6fd2b4df..1fb82c290c 100644 --- a/doc/examples/encoding.c +++ b/doc/examples/encoding.c @@ -205,7 +205,7 @@ static void video_encode_example(const char *filename) int i, out_size, size, x, y, outbuf_size; FILE *f; AVFrame *picture; - uint8_t *outbuf, *picture_buf; + uint8_t *outbuf; printf("Video encoding\n"); @@ -245,15 +245,11 @@ static void video_encode_example(const char *filename) /* alloc image and output buffer */ outbuf_size = 100000; outbuf = malloc(outbuf_size); - size = c->width * c->height; - picture_buf = malloc((size * 3) / 2); /* size for YUV 420 */ - picture->data[0] = picture_buf; - picture->data[1] = picture->data[0] + size; - picture->data[2] = picture->data[1] + size / 4; - picture->linesize[0] = c->width; - picture->linesize[1] = c->width / 2; - picture->linesize[2] = c->width / 2; + /* the image can be allocated by any means and av_image_alloc() is + * just the most convenient way if av_malloc() is to be used */ + av_image_alloc(picture->data, picture->linesize, + c->width, c->height, c->pix_fmt, 1); /* encode 1 second of video */ for(i=0;i<25;i++) { @@ -296,11 +292,11 @@ static void video_encode_example(const char *filename) outbuf[3] = 0xb7; fwrite(outbuf, 1, 4, f); fclose(f); - free(picture_buf); free(outbuf); avcodec_close(c); av_free(c); + av_free(picture->data[0]); av_free(picture); printf("\n"); } |