Mercurial > libavcodec.hg
diff apiexample.c @ 1373:b47a402bbe7f libavcodec
last frames & b frames encoding fix
author | michaelni |
---|---|
date | Wed, 23 Jul 2003 10:41:07 +0000 |
parents | 77ccf7fe3bd0 |
children | 951a4448c05a |
line wrap: on
line diff
--- a/apiexample.c Wed Jul 23 09:58:02 2003 +0000 +++ b/apiexample.c Wed Jul 23 10:41:07 2003 +0000 @@ -195,6 +195,7 @@ c->frame_rate = 25; c->frame_rate_base= 1; c->gop_size = 10; /* emit one intra frame every ten frames */ + c->max_b_frames=1; /* open it */ if (avcodec_open(c, codec) < 0) { @@ -225,7 +226,6 @@ /* encode 1 second of video */ for(i=0;i<25;i++) { - printf("encoding frame %3d\r", i); fflush(stdout); /* prepare a dummy image */ /* Y */ @@ -245,6 +245,16 @@ /* encode the image */ out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture); + printf("encoding frame %3d (size=%5d)\n", i, out_size); + fwrite(outbuf, 1, out_size, f); + } + + /* get the delayed frames */ + for(; out_size; i++) { + fflush(stdout); + + out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL); + printf("write frame %3d (size=%5d)\n", i, out_size); fwrite(outbuf, 1, out_size, f); } @@ -353,7 +363,7 @@ exit(1); } if (got_picture) { - printf("saving frame %3d\r", frame); + printf("saving frame %3d\n", frame); fflush(stdout); /* the picture is allocated by the decoder. no need to @@ -374,7 +384,7 @@ len = avcodec_decode_video(c, picture, &got_picture, NULL, 0); if (got_picture) { - printf("saving frame %3d\r", frame); + printf("saving last frame %3d\n", frame); fflush(stdout); /* the picture is allocated by the decoder. no need to