exit(1);
}
- picture->format = c->pix_fmt;
- picture->width = c->width;
- picture->height = c->height;
+ frame = av_frame_alloc();
+ if (!frame) {
+ fprintf(stderr, "Could not allocate video frame\n");
+ exit(1);
+ }
+ frame->format = c->pix_fmt;
+ frame->width = c->width;
+ frame->height = c->height;
- /* 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 */
- ret = av_image_alloc(frame->data, frame->linesize, c->width, c->height,
- c->pix_fmt, 32);
- ret = av_frame_get_buffer(picture, 32);
++ ret = av_frame_get_buffer(frame, 32);
if (ret < 0) {
- fprintf(stderr, "Could not allocate raw picture buffer\n");
- fprintf(stderr, "could not alloc the frame data\n");
++ fprintf(stderr, "Could not allocate the video frame data\n");
exit(1);
}
pkt.size = 0;
fflush(stdout);
- ret = av_frame_make_writable(picture);
+
+ /* make sure the frame data is writable */
++ ret = av_frame_make_writable(frame);
+ if (ret < 0)
+ exit(1);
+
/* prepare a dummy image */
/* Y */
- for(y=0;y<c->height;y++) {
- for(x=0;x<c->width;x++) {
- picture->data[0][y * picture->linesize[0] + x] = x + y + i * 3;
+ for (y = 0; y < c->height; y++) {
+ for (x = 0; x < c->width; x++) {
+ frame->data[0][y * frame->linesize[0] + x] = x + y + i * 3;
}
}
fclose(f);
avcodec_free_context(&c);
- av_freep(&frame->data[0]);
- av_frame_free(&picture);
+ av_frame_free(&frame);
return 0;
}