Sophie

Sophie

distrib > Mandriva > current > i586 > media > contrib-release-src > by-pkgid > ae59112a30001eabd903cc2e23296630 > files > 10

xbmc-9.11-1.svn29467.pvr_testing2.1mdv2010.1.src.rpm

diff -N'urpax*~' -x'*.orig' -x'*.rej' xbmc-pvr-testing2-29467/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp xbmc-pvr-testing2-29467-ac3-wrk/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
--- xbmc-pvr-testing2-29467/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp	2010-04-24 05:06:25.000000000 +0300
+++ xbmc-pvr-testing2-29467-ac3-wrk/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp	2010-04-25 22:11:57.499963214 +0300
@@ -158,15 +158,12 @@ int CDVDAudioCodecFFmpeg::Decode(BYTE* p
                                                  , pData
                                                  , iSize);
 
-#if (LIBAVCODEC_VERSION_INT > AV_VERSION_INT(52, 59, 0))
-  #error Make sure upstream version still needs this workaround (ffmpeg issue #1709)
-#endif
-  /* upstream ac3dec is bugged, returns the packet size, not a negative value on error */
+#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(52, 66, 0)
+  /* upstream ac3dec was bugged, returning the packet size on error */
+  /* this was fixed between libavcodec 52.66 and 52.67 */
   if (m_pCodecContext->codec_id == CODEC_ID_AC3 && iBytesUsed > iSize)
-  {
-    m_iBufferSize1 = 0;
-    return iSize;
-  }
+    iBytesUsed = iSize;
+#endif
 
   if(m_iBufferSize1 == 0 && iBytesUsed >= 0)
     m_iBuffered += iBytesUsed;