diff --git a/framework/demuxer/IDemuxer.h b/framework/demuxer/IDemuxer.h index 88d8089b6..42559b52b 100644 --- a/framework/demuxer/IDemuxer.h +++ b/framework/demuxer/IDemuxer.h @@ -160,6 +160,11 @@ namespace Cicada { return 0; } + virtual bool isLowLatency() + { + return false; + } + protected: demuxer_callback_read mReadCb{nullptr}; demuxer_callback_seek mSeekCb{nullptr}; diff --git a/mediaPlayer/SuperMediaPlayer.cpp b/mediaPlayer/SuperMediaPlayer.cpp index 9efa74de0..eadbe7665 100644 --- a/mediaPlayer/SuperMediaPlayer.cpp +++ b/mediaPlayer/SuperMediaPlayer.cpp @@ -3226,6 +3226,10 @@ namespace Cicada { } } + if (!mSet.bLowLatency) { + mSet.bLowLatency = mDemuxerService->getDemuxerHandle()->isLowLatency(); + } + if (mSet.bLowLatency) { // artp disable b frame to reduce delay at present decFlag |= DECFLAG_OUTPUT_FRAME_ASAP;