[xiph-commits] r6941 - in trunk/oggdsf/src/lib:

illiminable at dactyl.lonelymoon.com illiminable
Thu Jul 1 03:15:30 PDT 2004


codecs/theora/filters/dsfTheoraEncoder
codecs/theora/libs/libOOTheora
core/directshow/dsfAbstractVideoDecoder
core/directshow/dsfOggDemux core/ogg/libOOOggSeek
Message-ID: <20040701101530.ADFF89AAAD at dactyl.lonelymoon.com>

Author: illiminable
Date: Thu Jul  1 03:15:30 2004
New Revision: 6941

Modified:
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeInputPin.cpp
trunk/oggdsf/src/lib/codecs/theora/libs/libOOTheora/TheoraEncoder.cpp
trunk/oggdsf/src/lib/core/directshow/dsfAbstractVideoDecoder/AbstractVideoDecodeOutputPin.cpp
trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
trunk/oggdsf/src/lib/core/ogg/libOOOggSeek/AutoOggSeekTable.cpp
Log:
* Fixed a bug in the seek table whereby if the last page has a -1 granule pos it converts it to absolute time, giving erroneous duration information, and messing up the seeking.
* Changed the default encoding parameters down to a lower level, until i can provide an interface to let the user set them.
* Found a bug whereby the theora decoder doesn't properly pass on an end of stream message, leaving the filter graph hanging at the end of the file, waiting for neough EOS's to match the number of streams.
* The encoder seems to be working properly still.

Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeInputPin.cpp	2004-07-01 08:24:35 UTC (rev 6940)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeInputPin.cpp	2004-07-01 10:15:28 UTC (rev 6941)
@@ -248,14 +248,14 @@
mTheoraInfo.fps_numerator = locNum;
mTheoraInfo.fps_denominator = 1;
//I don't think this is right !
-	mTheoraInfo.aspect_numerator=1;//mVideoFormat->bmiHeader.biWidth;//video_an;
-	mTheoraInfo.aspect_denominator=1;//mVideoFormat->bmiHeader.biHeight;//video_ad;
+	mTheoraInfo.aspect_numerator=0;//mVideoFormat->bmiHeader.biWidth;//video_an;
+	mTheoraInfo.aspect_denominator=0;//mVideoFormat->bmiHeader.biHeight;//video_ad;
//
mTheoraInfo.colorspace=OC_CS_UNSPECIFIED;
-	mTheoraInfo.target_bitrate=1500000; //mVideoFormat->dwBitRate;
+	mTheoraInfo.target_bitrate=400000; //mVideoFormat->dwBitRate;

//Hard code for now
-	mTheoraInfo.quality=63; //video_q;
+	mTheoraInfo.quality=30; //video_q;

mTheoraInfo.dropframes_p=0;
mTheoraInfo.quick_p=1;

Modified: trunk/oggdsf/src/lib/codecs/theora/libs/libOOTheora/TheoraEncoder.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/libs/libOOTheora/TheoraEncoder.cpp	2004-07-01 08:24:35 UTC (rev 6940)
+++ trunk/oggdsf/src/lib/codecs/theora/libs/libOOTheora/TheoraEncoder.cpp	2004-07-01 10:15:28 UTC (rev 6941)
@@ -40,7 +40,7 @@
{
}

-
+//Not happy about exposing this here... should abstract it later.
StampedOggPacket** TheoraEncoder::initCodec(theora_info inTheoraInfo) {
mTheoraInfo = inTheoraInfo;
theora_encode_init(&mTheoraState,&mTheoraInfo);

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAbstractVideoDecoder/AbstractVideoDecodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAbstractVideoDecoder/AbstractVideoDecodeOutputPin.cpp	2004-07-01 08:24:35 UTC (rev 6940)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAbstractVideoDecoder/AbstractVideoDecodeOutputPin.cpp	2004-07-01 10:15:28 UTC (rev 6941)
@@ -42,6 +42,7 @@
AbstractVideoDecodeOutputPin::~AbstractVideoDecodeOutputPin(void)
{
//debugLog.close();
+
delete mDataQueue;
}


Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-07-01 08:24:35 UTC (rev 6940)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-07-01 10:15:28 UTC (rev 6941)
@@ -556,6 +556,7 @@
//FIXED

//return value ??
+	return S_OK;
}

//ANX:::Perhaps override here. Provide a different set-up function.

Modified: trunk/oggdsf/src/lib/core/ogg/libOOOggSeek/AutoOggSeekTable.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOggSeek/AutoOggSeekTable.cpp	2004-07-01 08:24:35 UTC (rev 6940)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOggSeek/AutoOggSeekTable.cpp	2004-07-01 10:15:28 UTC (rev 6941)
@@ -86,7 +86,7 @@
}


-	if (mSerialNoToTrack == inOggPage->header()->StreamSerialNo()) {
+	if ((mSerialNoToTrack == inOggPage->header()->StreamSerialNo()) && (inOggPage->header()->GranulePos()->value() != -1)) {
//if ((mPacketCount > 3) && (mLastIsSeekable == true)) {
if ((mPacketCount > mNumHeaders) && ((inOggPage->header()->HeaderFlags() & 1) != 1)) {
addSeekPoint(mLastSeekTime, mFilePos);



More information about the commits mailing list