[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