[xiph-commits] r10945 -
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder
illiminable at svn.xiph.org
illiminable at svn.xiph.org
Thu Feb 23 08:44:38 PST 2006
Author: illiminable
Date: 2006-02-23 08:44:20 -0800 (Thu, 23 Feb 2006)
New Revision: 10945
Modified:
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.cpp
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeInputPin.cpp
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeInputPin.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.cpp
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecodedllstuff.cpp
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecoderdllstuff.h
Log:
* Tidied up some dead code in theora
* Fixed an offset bug
* Fixed handling of video buffer changing size due to hardware acceleration
* Fixed bug where video would crash moving from one monitor to another
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.cpp 2006-02-23 14:02:32 UTC (rev 10944)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.cpp 2006-02-23 16:44:20 UTC (rev 10945)
@@ -1,5 +1,5 @@
//===========================================================================
-//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//Copyright (C) 2003-2006 Zentaro Kavanagh
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
@@ -55,9 +55,11 @@
TheoraDecodeFilter::TheoraDecodeFilter()
: CTransformFilter( NAME("Theora Decode Filter"), NULL, CLSID_TheoraDecodeFilter)
- , mHeight(0)
- , mWidth(0)
- , mFrameSize(0)
+ //, mHeight(0)
+ //, mWidth(0)
+ , mPictureWidth(0)
+ , mPictureHeight(0)
+ , mBMIFrameSize(0)
, mFrameCount(0)
, mYOffset(0)
, mXOffset(0)
@@ -165,8 +167,10 @@
// if ((locVideoHeader->bmiHeader.biHeight == mTheoraFormatInfo->pictureHeight) && (locVideoHeader->bmiHeader.biWidth == mTheoraFormatInfo->pictureWidth)) {
- mHeight = (unsigned long)abs(locVideoHeader->bmiHeader.biHeight);
- mWidth = (unsigned long)abs(locVideoHeader->bmiHeader.biWidth);
+ mBMIHeight = (unsigned long)abs(locVideoHeader->bmiHeader.biHeight);
+ mBMIWidth = (unsigned long)abs(locVideoHeader->bmiHeader.biWidth);
+
+ mBMIFrameSize = (mBMIHeight * mBMIWidth * 3) / 2;
return S_OK;
// } else {
// return S_FALSE;
@@ -497,148 +501,8 @@
}
HRESULT TheoraDecodeFilter::Transform(IMediaSample* inInputSample, IMediaSample* outOutputSample)
{
- //HRESULT locHR;
- //BYTE* locBuff = NULL;
- ////Get a source poitner into the input buffer
- //locHR = inInputSample->GetPointer(&locBuff);
- //if (locHR != S_OK) {
- // //debugLog<<"Receive : Get pointer failed..."<<locHR<<endl;
- // return S_FALSE;
- //} else {
- // //Make a copy of the packet buffer
- // BYTE* locNewBuff = new unsigned char[inInputSample->GetActualDataLength()]; //This gets put into a packet.
- // memcpy((void*)locNewBuff, (const void*)locBuff, inInputSample->GetActualDataLength());
-
- // REFERENCE_TIME locStart = 0;
- // REFERENCE_TIME locEnd = 0;
- // inInputSample->GetTime(&locStart, &locEnd);
-
- // //This packet is given to the decoder or buffered for later
- // StampedOggPacket* locPacket = new StampedOggPacket(locNewBuff, inInputSample->GetActualDataLength(), false, false, locStart, locEnd, StampedOggPacket::OGG_END_ONLY);
-
- // //Buffer all packets, even if we are about to send them anyway
- // mBufferedPackets.push_back(locPacket);
-
- // if (locEnd < 0) {
-
- // //S_FALSE is an agreement with CTransform filter, to not deliver the presented output sample
- // //XXX::: There may be some problems doing this, since it causes a quality message, and thinks we
- // // are dropping samples. It also may present a problem when we try to dump many frames
- // // downstream in one go.
- // return S_FALSE;
- // } else {
- // //Now we have one with a stamp, we can send all the previous ones.
- // TheoraDecodeInputPin* locInputPin = (TheoraDecodeInputPin*)m_pInput;
- // REFERENCE_TIME locGlobalEnd = locInputPin->convertGranuleToTime(locEnd);
- // unsigned long locNumBufferedFrames = mBufferedPackets.size();
- // REFERENCE_TIME locGlobalStart = locGlobalEnd - (locNumBufferedFrames * mFrameDuration);
-
- // locStart = locGlobalStart;
- //
- // for (unsigned long i = 0; i < locNumBufferedFrames; i++) {
- // bool locIsKeyFrame = mTheoraDecoder->isKeyFrame(mBufferedPackets[i]);
- // yuv_buffer* locYUV = mTheoraDecoder->decodeTheora(mBufferedPackets[i]); //This accept the packet and deletes it
- // locEnd = locStart + mFrameDuration;
- // if (locYUV != NULL) {
- // if (TheoraDecoded(locYUV, outOutputSample, locIsKeyFrame) != 0) {
- // //debugLog<<"Decoded *** FALSE ***"<<endl;
- // return S_FALSE;
- // }
- // } else {
- // //debugLog<<"!@&#^()!&@#!()*@#&)!(*@#&()!*@# NULL Decode"<<endl;
- // return S_FALSE;
- // }
- // }
-
-
-
- // return S_OK;
-
- // }
- //
- //}
-
-
-
-
-
-
-
- //HRESULT locHR;
- //BYTE* locBuff = NULL;
- ////Get a source poitner into the input buffer
- //locHR = inInputSample->GetPointer(&locBuff);
-
- ////TODO::: This should be after the return value check !!
- //BYTE* locNewBuff = new unsigned char[inInputSample->GetActualDataLength()]; //This gets put into a packet.
- //memcpy((void*)locNewBuff, (const void*)locBuff, inInputSample->GetActualDataLength());
-
-
- //if (locHR != S_OK) {
- // //debugLog<<"Receive : Get pointer failed..."<<locHR<<endl;
- // return S_FALSE;
- //} else {
- // //debugLog<<"Receive : Get pointer succeeds..."<<endl;
- // //New start time hacks
- // REFERENCE_TIME locStart = 0;
- // REFERENCE_TIME locEnd = 0;
- // inInputSample->GetTime(&locStart, &locEnd);
- // //Error chacks needed here
- // //debugLog<<"Input Sample Time - "<<locStart<<" to "<<locEnd<<endl;
- //
- // //More work arounds for that stupid granule pos scheme in theora!
- // REFERENCE_TIME locTimeBase = 0;
- // REFERENCE_TIME locDummy = 0;
- // inInputSample->GetMediaTime(&locTimeBase, &locDummy);
- // mSeekTimeBase = locTimeBase;
- // //
-
- // //debugLog<<"SeekTimeBase = "<<mSeekTimeBase<<endl;
- //
- // if ((mLastSeenStartGranPos != locStart) && (locStart != -1)) {
- // //debugLog<<"Resetting frame count"<<endl;
-
- // //FIXXX:::
- // //ResetFrameCount();
- // //
-
- // mLastSeenStartGranPos = locStart;
- // //debugLog<<"Setting base gran pos to "<<locStart<<endl;
- // }
- //
- // //End of additions
-
-
-
- // AM_MEDIA_TYPE* locMediaType = NULL;
- // inInputSample->GetMediaType(&locMediaType);
- // if (locMediaType == NULL) {
- // //debugLog<<"No dynamic change..."<<endl;
- // } else {
- // //debugLog<<"Attempting dynamic change..."<<endl;
- // }
- //
- // //This packet is given to the decoder.
- // StampedOggPacket* locPacket = new StampedOggPacket(locNewBuff, inInputSample->GetActualDataLength(), false, false, locStart, locEnd, StampedOggPacket::OGG_END_ONLY);
-
- // bool locIsKeyFrame = mTheoraDecoder->isKeyFrame(locPacket);
- // yuv_buffer* locYUV = mTheoraDecoder->decodeTheora(locPacket); //This accept the packet and deletes it
- // if (locYUV != NULL) {
- // if (TheoraDecoded(locYUV, outOutputSample, locIsKeyFrame) != 0) {
- // //debugLog<<"Decoded *** FALSE ***"<<endl;
- // return S_FALSE;
- // }
- // } else {
- // //debugLog<<"!@&#^()!&@#!()*@#&)!(*@#&()!*@# NULL Decode"<<endl;
- // return S_FALSE;
- // }
-
- // return S_OK;
- //
- //}
-
debugLog<<"Theora::Transform NOT IMPLEMENTED"<<endl;
return E_NOTIMPL;
@@ -670,15 +534,24 @@
long locYStride = inYUVBuffer->y_stride;
long locUVStride = inYUVBuffer->uv_stride;
- //debugLog<<"Y Stride = "<<locYStride<<endl;
- //debugLog<<"UV Stride = "<<locUVStride<<endl;
+
+
+ debugLog<<"Y Stride = "<<locYStride<<endl;
+ debugLog<<"UV Stride = "<<locUVStride<<endl;
+
+ debugLog<<"PictureHeight = "<<mPictureHeight<<endl;
+ debugLog<<"PictureWidth = "<<mPictureWidth<<endl;
+
+ debugLog<<"BMIHeight = "<<mBMIHeight<<endl;
+ debugLog<<"BMIWidth = "<<mBMIWidth<<endl;
+
//
//Y DATA
//
- //NEW WAY with offsets Y Data
- long locTopPad = inYUVBuffer->y_height - mHeight - mYOffset;
- //debugLog<<"--------- PAD = "<<locTopPad<<endl;
+ //Offsets Y Data
+ long locTopPad = inYUVBuffer->y_height - mPictureHeight - mYOffset;
+ debugLog<<"--------- TOP PAD = "<<locTopPad<<endl;
//ASSERT(locTopPad >= 0);
@@ -688,17 +561,26 @@
}
- //Skip the top padding
+ //Skip the offset padding
locSourceUptoPtr += (mYOffset * locYStride);
- for (unsigned long line = 0; line < mHeight; line++) {
- memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + mXOffset), mWidth);
+ for (unsigned long line = 0; line < mPictureHeight; line++) {
+ //Ignore the x offset, and copy mPictureWidth bytes onto the destination
+ memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + mXOffset), mPictureWidth);
+
+ //Advance the source pointer by the stride
locSourceUptoPtr += locYStride;
- locDestUptoPtr += mWidth;
+
+ //Advance the destination pointer by the BMI Width
+ locDestUptoPtr += mBMIWidth;
}
+ //Skip the other padding
locSourceUptoPtr += (locTopPad * locYStride);
+ //Advance the destination to pad to the size the video renderer wants
+ locDestUptoPtr += ((mBMIHeight - mPictureHeight) * mBMIWidth);
+
//debugLog<<"Dest Distance(y) = "<<(unsigned long)(locDestUptoPtr - locBuffer)<<endl;
//Source advances by (y_height * y_stride)
@@ -708,6 +590,8 @@
//V DATA
//
+ //TODO::: May be issue here with odd numbers
+
//Half the padding for uv planes... is this correct ?
locTopPad = locTopPad /2;
@@ -716,12 +600,14 @@
//Skip the top padding
locSourceUptoPtr += ((mYOffset/2) * locYStride);
- for (unsigned long line = 0; line < mHeight / 2; line++) {
- memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + (mXOffset / 2)), mWidth / 2);
+ for (unsigned long line = 0; line < mPictureHeight / 2; line++) {
+ //Ignore the x offset and copy mPictureWidth/2 bytes to the destination
+ memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + (mXOffset / 2)), mPictureWidth / 2);
locSourceUptoPtr += locUVStride;
- locDestUptoPtr += (mWidth / 2);
+ locDestUptoPtr += (mBMIWidth / 2);
}
locSourceUptoPtr += (locTopPad * locUVStride);
+ locDestUptoPtr += (((mBMIHeight/2) - (mPictureHeight/2)) * (mBMIWidth/2));
//Source advances by (locTopPad + mYOffset/2 + mHeight /2) * uv_stride
//where locTopPad for uv = (inYUVBuffer->y_height - mHeight - mYOffset) / 2
@@ -740,12 +626,15 @@
//Skip the top padding
locSourceUptoPtr += ((mYOffset/2) * locYStride);
- for (unsigned long line = 0; line < mHeight / 2; line++) {
- memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + (mXOffset / 2)), mWidth / 2);
+ for (unsigned long line = 0; line < mPictureHeight / 2; line++) {
+ memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + (mXOffset / 2)), mPictureWidth / 2);
locSourceUptoPtr += locUVStride;
- locDestUptoPtr += (mWidth / 2);
+ locDestUptoPtr += (mBMIWidth / 2);
}
+
+ //Redundant
locSourceUptoPtr += (locTopPad * locUVStride);
+ locDestUptoPtr += (((mBMIHeight/2) - (mPictureHeight/2)) * (mBMIWidth/2));
//debugLog<<"Dest Distance(U) = "<<(unsigned long)(locDestUptoPtr - locBuffer)<<endl;
//debugLog<<"Frame Size = "<<mFrameSize<<endl;
@@ -756,7 +645,7 @@
if (inIsKeyFrame) {
locIsKeyFrame = TRUE;
};
- SetSampleParams(outSample, mFrameSize, &locStart, &locEnd, locIsKeyFrame);
+ SetSampleParams(outSample, mBMIFrameSize, &locStart, &locEnd, locIsKeyFrame);
@@ -766,6 +655,127 @@
}
+//HRESULT TheoraDecodeFilter::TheoraDecoded (yuv_buffer* inYUVBuffer, IMediaSample* outSample, bool inIsKeyFrame, REFERENCE_TIME inStart, REFERENCE_TIME inEnd)
+//{
+//
+// ////Create pointers for the samples buffer to be assigned to
+// BYTE* locBuffer = NULL;
+//
+// //
+// ////Make our pointers set to point to the samples buffer
+// outSample->GetPointer(&locBuffer);
+//
+// //Fill the buffer with yuv data...
+// //
+//
+// REFERENCE_TIME locStart = inStart;
+// REFERENCE_TIME locEnd = inEnd;
+//
+//
+// //Set up the pointers
+// unsigned char* locDestUptoPtr = locBuffer;
+// char* locSourceUptoPtr = inYUVBuffer->y;
+//
+// //Strides from theora are generally -'ve
+// long locYStride = inYUVBuffer->y_stride;
+// long locUVStride = inYUVBuffer->uv_stride;
+//
+// //debugLog<<"Y Stride = "<<locYStride<<endl;
+// //debugLog<<"UV Stride = "<<locUVStride<<endl;
+// //
+// //Y DATA
+// //
+//
+// //NEW WAY with offsets Y Data
+// long locTopPad = inYUVBuffer->y_height - mHeight - mYOffset;
+// //debugLog<<"--------- PAD = "<<locTopPad<<endl;
+//
+//
+// //ASSERT(locTopPad >= 0);
+// if (locTopPad < 0) {
+// locTopPad = 0;
+// } else {
+//
+// }
+//
+// //Skip the top padding
+// locSourceUptoPtr += (mYOffset * locYStride);
+//
+// for (unsigned long line = 0; line < mHeight; line++) {
+// memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + mXOffset), mWidth);
+// locSourceUptoPtr += locYStride;
+// locDestUptoPtr += mWidth;
+// }
+//
+// locSourceUptoPtr += (locTopPad * locYStride);
+//
+// //debugLog<<"Dest Distance(y) = "<<(unsigned long)(locDestUptoPtr - locBuffer)<<endl;
+//
+// //Source advances by (y_height * y_stride)
+// //Dest advances by (mHeight * mWidth)
+//
+// //
+// //V DATA
+// //
+//
+// //Half the padding for uv planes... is this correct ?
+// locTopPad = locTopPad /2;
+//
+// locSourceUptoPtr = inYUVBuffer->v;
+//
+// //Skip the top padding
+// locSourceUptoPtr += ((mYOffset/2) * locYStride);
+//
+// for (unsigned long line = 0; line < mHeight / 2; line++) {
+// memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + (mXOffset / 2)), mWidth / 2);
+// locSourceUptoPtr += locUVStride;
+// locDestUptoPtr += (mWidth / 2);
+// }
+// locSourceUptoPtr += (locTopPad * locUVStride);
+//
+// //Source advances by (locTopPad + mYOffset/2 + mHeight /2) * uv_stride
+// //where locTopPad for uv = (inYUVBuffer->y_height - mHeight - mYOffset) / 2
+// // = (inYUVBuffer->yheight/2 - mHeight/2 - mYOffset/2)
+// // so source advances by (y_height/2) * uv_stride
+// //Dest advances by (mHeight * mWidth) /4
+//
+//
+// //debugLog<<"Dest Distance(V) = "<<(unsigned long)(locDestUptoPtr - locBuffer)<<endl;
+// //
+// //U DATA
+// //
+//
+// locSourceUptoPtr = inYUVBuffer->u;
+//
+// //Skip the top padding
+// locSourceUptoPtr += ((mYOffset/2) * locYStride);
+//
+// for (unsigned long line = 0; line < mHeight / 2; line++) {
+// memcpy((void*)(locDestUptoPtr), (const void*)(locSourceUptoPtr + (mXOffset / 2)), mWidth / 2);
+// locSourceUptoPtr += locUVStride;
+// locDestUptoPtr += (mWidth / 2);
+// }
+// locSourceUptoPtr += (locTopPad * locUVStride);
+//
+// //debugLog<<"Dest Distance(U) = "<<(unsigned long)(locDestUptoPtr - locBuffer)<<endl;
+// //debugLog<<"Frame Size = "<<mFrameSize<<endl;
+//
+// //Set the sample parameters.
+// //BOOL locIsKeyFrame = (locInterFrameNo == 0);
+// BOOL locIsKeyFrame = FALSE;
+// if (inIsKeyFrame) {
+// locIsKeyFrame = TRUE;
+// };
+// SetSampleParams(outSample, mFrameSize, &locStart, &locEnd, locIsKeyFrame);
+//
+//
+//
+// return S_OK;
+//
+//
+//}
+
+
HRESULT TheoraDecodeFilter::SetMediaType(PIN_DIRECTION inDirection, const CMediaType* inMediaType) {
if (inDirection == PINDIR_INPUT) {
@@ -775,12 +785,20 @@
//Set some other stuff here too...
mXOffset = mTheoraFormatInfo->xOffset;
- mYOffset = mTheoraFormatInfo->xOffset;
+ mYOffset = mTheoraFormatInfo->yOffset;
+ mPictureWidth = mTheoraFormatInfo->pictureWidth;
+ mPictureHeight = mTheoraFormatInfo->pictureHeight;
+
//How many UNITS does one frame take.
mFrameDuration = (UNITS * mTheoraFormatInfo->frameRateDenominator) / (mTheoraFormatInfo->frameRateNumerator);
- mFrameSize = (mHeight * mWidth * 3) / 2;
+ //Added
+ //mHeight = mTheoraFormatInfo->pictureHeight; //(unsigned long)abs(locVideoHeader->bmiHeader.biHeight);
+ //mWidth = mTheoraFormatInfo->pictureWidth; //(unsigned long)abs(locVideoHeader->bmiHeader.biWidth);
+
+
+ //mFrameSize = (mPictureHeight * mPictureWidth * 3) / 2;
mFrameCount = 0;
} else {
//Failed... should never be here !
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.h 2006-02-23 14:02:32 UTC (rev 10944)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.h 2006-02-23 16:44:20 UTC (rev 10945)
@@ -1,5 +1,5 @@
//===========================================================================
-//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//Copyright (C) 2003-2006 Zentaro Kavanagh
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
@@ -82,9 +82,15 @@
void FillMediaType(CMediaType* outMediaType, unsigned long inSampleSize);
bool FillVideoInfoHeader(VIDEOINFOHEADER* inFormatBuffer);
bool SetSampleParams(IMediaSample* outMediaSample, unsigned long inDataSize, REFERENCE_TIME* inStartTime, REFERENCE_TIME* inEndTime, BOOL inIsSync);
- unsigned long mHeight;
- unsigned long mWidth;
- unsigned long mFrameSize;
+
+ unsigned long mBMIHeight;
+ unsigned long mBMIWidth;
+ unsigned long mBMIFrameSize;
+
+ unsigned long mPictureHeight;
+ unsigned long mPictureWidth;
+
+
unsigned long mFrameCount;
unsigned long mYOffset;
unsigned long mXOffset;
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeInputPin.cpp 2006-02-23 14:02:32 UTC (rev 10944)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeInputPin.cpp 2006-02-23 16:44:20 UTC (rev 10945)
@@ -1,5 +1,5 @@
//===========================================================================
-//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//Copyright (C) 2003-2006 Zentaro Kavanagh
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeInputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeInputPin.h 2006-02-23 14:02:32 UTC (rev 10944)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeInputPin.h 2006-02-23 16:44:20 UTC (rev 10945)
@@ -1,5 +1,5 @@
//===========================================================================
-//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//Copyright (C) 2003-2006 Zentaro Kavanagh
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.cpp 2006-02-23 14:02:32 UTC (rev 10944)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.cpp 2006-02-23 16:44:20 UTC (rev 10945)
@@ -1,5 +1,5 @@
//===========================================================================
-//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//Copyright (C) 2003-2006 Zentaro Kavanagh
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.h 2006-02-23 14:02:32 UTC (rev 10944)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeOutputPin.h 2006-02-23 16:44:20 UTC (rev 10945)
@@ -1,5 +1,5 @@
//===========================================================================
-//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//Copyright (C) 2003-2006 Zentaro Kavanagh
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecodedllstuff.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecodedllstuff.cpp 2006-02-23 14:02:32 UTC (rev 10944)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecodedllstuff.cpp 2006-02-23 16:44:20 UTC (rev 10945)
@@ -1,5 +1,5 @@
//===========================================================================
-//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//Copyright (C) 2003-2006 Zentaro Kavanagh
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecoderdllstuff.h 2006-02-23 14:02:32 UTC (rev 10944)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecoderdllstuff.h 2006-02-23 16:44:20 UTC (rev 10945)
@@ -1,5 +1,5 @@
//===========================================================================
-//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//Copyright (C) 2003-2006 Zentaro Kavanagh
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
More information about the commits
mailing list