The branch, master has been updated
via 0fb04ab46109a31a2bca1a103cbbb1195fba3834 (commit)
via 88ea78560ad3444bd555d391f02ffdc171f35eec (commit)
from d29575755d23d4ca807df1c9ba89c051e0e8f2d0 (commit)
https://github.com/xbmc/xbmc/commit/0fb04ab46109a31a2bca1a103cbbb1195fba3834
commit 0fb04ab46109a31a2bca1a103cbbb1195fba3834
Author: elupus <elupus@...>
Date: Sat Feb 25 19:03:07 2012 +0100
changed: bump number of minimum remembered packets for recovery
From reports the current value wasn't enough and it doesn't
hurt much to bump this one step.
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
index d53ed56..b4e1451 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
@@ -449,8 +449,8 @@ int CDVDVideoCodecFFmpeg::Decode(BYTE* pData, int iSize, double dts, double pts)
avpkt.flags = AV_PKT_FLAG_KEY;
len = m_dllAvCodec.avcodec_decode_video2(m_pCodecContext, m_pFrame, &iGotPicture, &avpkt);
- if(m_iLastKeyframe < m_pCodecContext->has_b_frames + 1)
- m_iLastKeyframe = m_pCodecContext->has_b_frames + 1;
+ if(m_iLastKeyframe < m_pCodecContext->has_b_frames + 2)
+ m_iLastKeyframe = m_pCodecContext->has_b_frames + 2;
if (len < 0)
{
@@ -467,7 +467,7 @@ int CDVDVideoCodecFFmpeg::Decode(BYTE* pData, int iSize, double dts, double pts)
if(m_pFrame->key_frame)
{
m_started = true;
- m_iLastKeyframe = m_pCodecContext->has_b_frames + 1;
+ m_iLastKeyframe = m_pCodecContext->has_b_frames + 2;
}
/* put a limit on convergence count to avoid huge mem usage on streams without keyframes */
https://github.com/xbmc/xbmc/commit/88ea78560ad3444bd555d391f02ffdc171f35eec
commit 88ea78560ad3444bd555d391f02ffdc171f35eec
Author: elupus <elupus@...>
Date: Sat Feb 25 19:00:21 2012 +0100
fixed: convergance count was wrong for h264
This occured with the change to not wait for keyframes on startup
for h264
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
index a90b557..d53ed56 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
@@ -464,12 +464,20 @@ int CDVDVideoCodecFFmpeg::Decode(BYTE* pData, int iSize, double dts, double pts)
if (!iGotPicture)
return VC_BUFFER;
- if(m_pFrame->key_frame || m_pCodecContext->codec_id == CODEC_ID_H264) /* h264 doesn't always have keyframes + won't output before first keyframe anyway */
+ if(m_pFrame->key_frame)
{
m_started = true;
m_iLastKeyframe = m_pCodecContext->has_b_frames + 1;
}
+ /* put a limit on convergence count to avoid huge mem usage on streams without keyframes */
+ if(m_iLastKeyframe > 300)
+ m_iLastKeyframe = 300;
+
+ /* h264 doesn't always have keyframes + won't output before first keyframe anyway */
+ if(m_pCodecContext->codec_id == CODEC_ID_H264)
+ m_started = true;
+
if(m_pCodecContext->pix_fmt != PIX_FMT_YUV420P
&& m_pCodecContext->pix_fmt != PIX_FMT_YUVJ420P
&& m_pHardware == NULL)
-----------------------------------------------------------------------
Summary of changes:
.../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
hooks/post-receive
--
[xbmc/xbmc]
|