From b76a0e24f9effa64e48ff0567af0dc497dd99e84 Mon Sep 17 00:00:00 2001 From: rogerdpack <rogerpack2005@gmail.com> Date: Fri, 23 Jan 2015 06:13:33 -0700 Subject: [PATCH] dshow: drop initial audio packets with weird timestamps Signed-off-by: rogerdpack <rogerpack2005@gmail.com> --- libavdevice/dshow_pin.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavdevice/dshow_pin.c b/libavdevice/dshow_pin.c index 1c0dca24099..5904c28b86f 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; } -- GitLab