[FFmpeg-cvslog] dshow: drop initial audio packets with weird timestamps

rogerdpack git at videolan.org
Sat Jan 24 00:05:06 CET 2015


ffmpeg | branch: master | rogerdpack <rogerpack2005 at gmail.com> | Fri Jan 23 06:13:33 2015 -0700| [b76a0e24f9effa64e48ff0567af0dc497dd99e84] | committer: rogerdpack

dshow: drop initial audio packets with weird timestamps

Signed-off-by: rogerdpack <rogerpack2005 at gmail.com>

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

 libavdevice/dshow_pin.c |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libavdevice/dshow_pin.c b/libavdevice/dshow_pin.c
index 1c0dca2..5904c28 100644
--- a/libavdevice/dshow_pin.c
+++ b/libavdevice/dshow_pin.c
@@ -320,6 +320,14 @@ libAVMemInputPin_Receive(libAVMemInputPin *this, IMediaSample *sample)
     } else {
         int64_t dummy;
         IMediaSample_GetTime(sample, &curtime, &dummy);
+        if(curtime > 400000000000000000LL) {
+            /* initial frames sometimes start < 0 (shown as a very large number here,
+               like 437650244077016960 which FFmpeg doesn't like.
+               TODO figure out math. For now just drop them. */
+            av_log(NULL, AV_LOG_DEBUG,
+                "dshow dropping initial (or ending) audio frame with odd PTS too high %"PRId64"\n", curtime);
+            return S_OK;
+        }
         curtime += pin->filter->start_time;
     }
 



More information about the ffmpeg-cvslog mailing list