examples/decoding_encoding: flush audio frames in the encoder
authorStefano Sabatini <stefasab@gmail.com>
Tue, 21 Aug 2012 20:28:55 +0000 (22:28 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Wed, 22 Aug 2012 09:54:30 +0000 (11:54 +0200)
doc/examples/decoding_encoding.c

index d41f1fd..96b1a4b 100644 (file)
@@ -205,6 +205,20 @@ static void audio_encode_example(const char *filename)
             av_free_packet(&pkt);
         }
     }
+
+    /* get the delayed frames */
+    for (got_output = 1; got_output; i++) {
+        ret = avcodec_encode_audio2(c, &pkt, NULL, &got_output);
+        if (ret < 0) {
+            fprintf(stderr, "error encoding frame\n");
+            exit(1);
+        }
+
+        if (got_output) {
+            fwrite(pkt.data, 1, pkt.size, f);
+            av_free_packet(&pkt);
+        }
+    }
     fclose(f);
 
     av_freep(&samples);