[FFmpeg-cvslog] asyncts: fix flushing of final samples at EOF

Justin Ruggles git at videolan.org
Fri Dec 14 13:56:11 CET 2012


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Wed Dec 12 13:10:13 2012 -0500| [f266486b2e71d2965a19a505e83ead3cc1b198e0] | committer: Justin Ruggles

asyncts: fix flushing of final samples at EOF

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f266486b2e71d2965a19a505e83ead3cc1b198e0
---

 libavfilter/af_asyncts.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/libavfilter/af_asyncts.c b/libavfilter/af_asyncts.c
index 5d009f0..67f3c4f 100644
--- a/libavfilter/af_asyncts.c
+++ b/libavfilter/af_asyncts.c
@@ -116,6 +116,12 @@ static int config_props(AVFilterLink *link)
     return 0;
 }
 
+/* get amount of data currently buffered, in samples */
+static int64_t get_delay(ASyncContext *s)
+{
+    return avresample_available(s->avr) + avresample_get_delay(s->avr);
+}
+
 static int request_frame(AVFilterLink *link)
 {
     AVFilterContext *ctx = link->src;
@@ -128,7 +134,7 @@ static int request_frame(AVFilterLink *link)
         ret = ff_request_frame(ctx->inputs[0]);
 
     /* flush the fifo */
-    if (ret == AVERROR_EOF && (nb_samples = avresample_get_delay(s->avr))) {
+    if (ret == AVERROR_EOF && (nb_samples = get_delay(s))) {
         AVFilterBufferRef *buf = ff_get_audio_buffer(link, AV_PERM_WRITE,
                                                      nb_samples);
         if (!buf)
@@ -155,12 +161,6 @@ static int write_to_fifo(ASyncContext *s, AVFilterBufferRef *buf)
     return ret;
 }
 
-/* get amount of data currently buffered, in samples */
-static int64_t get_delay(ASyncContext *s)
-{
-    return avresample_available(s->avr) + avresample_get_delay(s->avr);
-}
-
 static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *buf)
 {
     AVFilterContext  *ctx = inlink->dst;



More information about the ffmpeg-cvslog mailing list