Browse Source

examples/decoding_encoding: fix encoding when all frames got buffered.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.11
Michael Niedermayer 13 years ago
parent
commit
28d37f7160
1 changed files with 4 additions and 1 deletions
  1. +4
    -1
      doc/examples/decoding_encoding.c

+ 4
- 1
doc/examples/decoding_encoding.c View File

@@ -215,6 +215,7 @@ static void video_encode_example(const char *filename, int codec_id)
FILE *f; FILE *f;
AVFrame *picture; AVFrame *picture;
uint8_t *outbuf; uint8_t *outbuf;
int had_output=0;


printf("Video encoding\n"); printf("Video encoding\n");


@@ -284,15 +285,17 @@ static void video_encode_example(const char *filename, int codec_id)


/* encode the image */ /* encode the image */
out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture); out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
had_output |= out_size;
printf("encoding frame %3d (size=%5d)\n", i, out_size); printf("encoding frame %3d (size=%5d)\n", i, out_size);
fwrite(outbuf, 1, out_size, f); fwrite(outbuf, 1, out_size, f);
} }


/* get the delayed frames */ /* get the delayed frames */
for(; out_size; i++) {
for(; out_size || !had_output; i++) {
fflush(stdout); fflush(stdout);


out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL); out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL);
had_output |= out_size;
printf("write frame %3d (size=%5d)\n", i, out_size); printf("write frame %3d (size=%5d)\n", i, out_size);
fwrite(outbuf, 1, out_size, f); fwrite(outbuf, 1, out_size, f);
} }


Loading…
Cancel
Save