[xiph-commits] r11849 - in trunk/oggdsf/src/lib/codecs:
ogm/filters/dsfOGMDecoder vorbis/filters/dsfVorbisDecoder
illiminable at svn.xiph.org
illiminable at svn.xiph.org
Sat Sep 23 00:25:39 PDT 2006
Author: illiminable
Date: 2006-09-23 00:25:32 -0700 (Sat, 23 Sep 2006)
New Revision: 11849
Modified:
trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeFilter.cpp
trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeFilter.h
trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeInputPin.h
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.cpp
Log:
* Removed a stray bit of copy/pastet that was in vorbis decode filter
* Boosted the number of queue buffers in ogm
* Fixed ogm decoder blocking when there was no proper subtitle renderer installed. OGM playback is working reasonably, but still no keyframe seeking, and still plays multiple audio track langauges at the same time with no way to choose one.
Modified: trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeFilter.cpp 2006-09-21 21:06:23 UTC (rev 11848)
+++ trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeFilter.cpp 2006-09-23 07:25:32 UTC (rev 11849)
@@ -357,9 +357,31 @@
//}
+ //TODO::: Should this be E_NOTIMPL?
return S_OK;
}
+STDMETHODIMP OGMDecodeFilter::GetState(DWORD dw, FILTER_STATE *pState)
+{
+ CheckPointer(pState, E_POINTER);
+ *pState = m_State;
+
+ //This lets us return a special code to indicate that we shouldn't necessarily expect anything to
+ // become queued from the text filter. Problem is because text is so sparse, all the other streams
+ // will likely fill all their buffers before any text is apparent.
+ //
+ //This can cause the graph to block. It has no performance impact because text is instantaneous
+ // however if you did this for video output, the graph would try and start before any video frames
+ // had been decoded and this would likely make it start too early and skip while it proeprly
+ // fills the buffers.
+ //
+ if ((m_State == State_Paused) && (mInputPin->getOGMMediaType() == OGMDecodeInputPin::OGM_TEXT_TYPE)) {
+ return VFW_S_CANT_CUE;
+ } else {
+ return S_OK;
+ }
+}
+
CBasePin* OGMDecodeFilter::GetPin(int inPinNo)
{
Modified: trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeFilter.h 2006-09-21 21:06:23 UTC (rev 11848)
+++ trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeFilter.h 2006-09-23 07:25:32 UTC (rev 11849)
@@ -69,7 +69,10 @@
virtual CBasePin* GetPin(int inPinNo);
+ //IMediaFilter OVerride - This lets us tell the graph we may not produce data in pause state so don't block.
+ virtual STDMETHODIMP GetState(DWORD dw, FILTER_STATE *pState);
+
protected:
void deleteBufferedPackets();
Modified: trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeInputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeInputPin.h 2006-09-21 21:06:23 UTC (rev 11848)
+++ trunk/oggdsf/src/lib/codecs/ogm/filters/dsfOGMDecoder/OGMDecodeInputPin.h 2006-09-23 07:25:32 UTC (rev 11849)
@@ -92,7 +92,7 @@
__int64 mGranuleRateDenominator;
static const unsigned long OGM_IDENT_HEADER_SIZE = 57;
- static const unsigned long OGM_NUM_BUFFERS = 50;
+ static const unsigned long OGM_NUM_BUFFERS = 100;
static const unsigned long OGM_BUFFER_SIZE = 1024*512*3;;
};
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.cpp 2006-09-21 21:06:23 UTC (rev 11848)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.cpp 2006-09-23 07:25:32 UTC (rev 11849)
@@ -29,9 +29,6 @@
//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//===========================================================================
-#include "stdafx.h"
-#include "vorbisdecodefilter.h"
-
//Include Files
#include "stdafx.h"
#include "VorbisDecodeFilter.h"
More information about the commits
mailing list