From fed697b9331ca554bbc805ed0780c00043a53d9a Mon Sep 17 00:00:00 2001 From: wang-bin Date: Wed, 12 Aug 2015 12:02:33 +0800 Subject: [PATCH] dyamic dec: continue to decode current packet if it has a key frame --- src/VideoThread.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/VideoThread.cpp b/src/VideoThread.cpp index dd082dc7..9347f6f0 100644 --- a/src/VideoThread.cpp +++ b/src/VideoThread.cpp @@ -452,8 +452,11 @@ void VideoThread::run() // decoder maybe changed in processNextTask(). code above MUST use d.dec but not dec if (dec != static_cast(d.dec)) { dec = static_cast(d.dec); - wait_key_frame = true; - continue; + if (!pkt.hasKeyFrame) { + wait_key_frame = true; + continue; + } + qDebug("decoder changed. decoding key frame"); } if (dec_opt != dec_opt_old) dec->setOptions(*dec_opt);