[xiph-commits] r8760 -
trunk/oggdsf/src/lib/core/directshow/dsfAnxMux
illiminable at motherfish-iii.xiph.org
illiminable at motherfish-iii.xiph.org
Mon Jan 17 15:38:04 PST 2005
Author: illiminable
Date: 2005-01-14 22:36:00 -0800 (Fri, 14 Jan 2005)
New Revision: 8760
Modified:
trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxMuxFilter.cpp
trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxMuxInputPin.cpp
trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxPageInterleaver.cpp
Log:
* Mark out places for anx3 changes.
Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxMuxFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxMuxFilter.cpp 2005-01-14 23:53:00 UTC (rev 8759)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxMuxFilter.cpp 2005-01-15 06:36:00 UTC (rev 8760)
@@ -56,6 +56,7 @@
STDMETHODIMP AnxMuxFilter::NonDelegatingQueryInterface(REFIID riid, void **ppv)
{
+ //ANX3::: Maybe need an interface to set the anx version here.
return OggMuxFilter::NonDelegatingQueryInterface(riid, ppv);
}
@@ -71,6 +72,7 @@
: OggMuxFilter(CLSID_AnxMuxFilter)
{
+ //ANX3::: Need to have a better way to set this.
mInterleaver = new AnxPageInterleaver(this, this, 2, 0);
mInputPins.push_back(new AnxMuxInputPin(this, m_pLock, &mHR, mInterleaver->newStream()));
Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxMuxInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxMuxInputPin.cpp 2005-01-14 23:53:00 UTC (rev 8759)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxMuxInputPin.cpp 2005-01-15 06:36:00 UTC (rev 8760)
@@ -57,6 +57,7 @@
HRESULT locHR = mParentFilter->addAnotherPin();
if ((locHR == S_OK) && (mAnxDataPacket != NULL)) {
+ //ANX3::: Only do this for anx2... in anx 3 we need to get the fishbone some other way.
mPaginator.acceptStampedOggPacket(mAnxDataPacket);
return S_OK;
} else {
@@ -159,6 +160,7 @@
}
}
if (locWasOK) {
+ //ANX3::: Need to make our fishbone here.
//Save the packet, we'll push it into the stream when the connection is established
mAnxDataPacket = AnxPacketMaker::makeAnxData_2_0(2,0, locGranRateNum, locGranRateDenom, locNumHeaders, AnxPacketMaker::makeMessageHeaders(locCodecID));
return S_OK;
Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxPageInterleaver.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxPageInterleaver.cpp 2005-01-14 23:53:00 UTC (rev 8759)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/AnxPageInterleaver.cpp 2005-01-15 06:36:00 UTC (rev 8760)
@@ -98,6 +98,8 @@
mFileWriter->acceptOggPage(locEOSPage);
}
+//ANX3::: Need to make a new version of this which only returns true, when we actually have *ALL* the
+// header for the stream not just the first one.
bool AnxPageInterleaver::gotAllHeaders() {
//TODO::: The isActive needs to be clarified so we don't start empty streams because wasany goes to true
@@ -134,6 +136,7 @@
if (!mIsAnxSetup) {
if (gotAllHeaders()) {
+
mIsAnxSetup = true;
addAnnodex_2_0_BOS();
addAllAnxData_2_0_BOS();
@@ -143,6 +146,31 @@
} else {
OggPageInterleaver::processData();
}
+ } else if ((mVersionMajor == 3) && (mVersionMinor == 0)) {
+ if (!mIsAnxSetup) {
+ if (gotAllHeaders()) {
+ //ANX3::: We need to make sure every stream has all of their headers
+ //
+ //Then we write :
+ //Fishhead
+ //Codec CMML BOS
+ //Codec 2 BOS
+ //Fishbones...
+ //All other codec secondary headers...
+
+ mIsAnxSetup = true;
+ //addAnnodex_2_0_BOS();
+ //addAllAnxData_2_0_BOS();
+ //addAnnodexEOS();
+
+ //addFishyBits();
+
+ //TODO::: Pump out these start pages.
+ }
+ } else {
+ OggPageInterleaver::processData();
+ }
+
} else {
throw 0;
}
More information about the commits
mailing list