[xiph-commits] r10270 - branches/oggdsf_new_demux/src/lib/codecs/vorbis/filters/dsfVorbisDecoder

illiminable at svn.xiph.org illiminable at svn.xiph.org
Sun Oct 23 04:44:09 PDT 2005


Author: illiminable
Date: 2005-10-23 04:44:05 -0700 (Sun, 23 Oct 2005)
New Revision: 10270

Modified:
   branches/oggdsf_new_demux/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp
Log:
* Pass the forced headers through to libfishsound

Modified: branches/oggdsf_new_demux/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp	2005-10-23 11:39:20 UTC (rev 10269)
+++ branches/oggdsf_new_demux/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp	2005-10-23 11:44:05 UTC (rev 10270)
@@ -279,30 +279,36 @@
 		case VSS_SEEN_NOTHING:
 			if (strncmp((char*)inCodecHeaderPacket->packetData(), "\001vorbis", 7) == 0) {
 				//TODO::: Possibly verify version
-				mSetupState = VSS_SEEN_BOS;
-				return IOggDecoder::AHR_MORE_HEADERS_TO_COME;
-			} else {
-				return IOggDecoder::AHR_INVALID_HEADER;
+				if (fish_sound_decode(mFishSound, inCodecHeaderPacket->packetData(), inCodecHeaderPacket->packetSize()) >= 0) {
+					mSetupState = VSS_SEEN_BOS;
+					return IOggDecoder::AHR_MORE_HEADERS_TO_COME;
+				}
 			}
-			break;
+			return IOggDecoder::AHR_INVALID_HEADER;
+			
+			
 		case VSS_SEEN_BOS:
 			if (strncmp((char*)inCodecHeaderPacket->packetData(), "\003vorbis", 7) == 0) {
+				if (fish_sound_decode(mFishSound, inCodecHeaderPacket->packetData(), inCodecHeaderPacket->packetSize()) >= 0) {
+					mSetupState = VSS_SEEN_COMMENT;
+					return IOggDecoder::AHR_MORE_HEADERS_TO_COME;
+				}
 				
-				mSetupState = VSS_SEEN_COMMENT;
-				return IOggDecoder::AHR_MORE_HEADERS_TO_COME;
-			} else {
-				return IOggDecoder::AHR_INVALID_HEADER;
+				
 			}
-			break;
+			return IOggDecoder::AHR_INVALID_HEADER;
+			
+			
 		case VSS_SEEN_COMMENT:
 			if (strncmp((char*)inCodecHeaderPacket->packetData(), "\005vorbis", 7) == 0) {
+				if (fish_sound_decode(mFishSound, inCodecHeaderPacket->packetData(), inCodecHeaderPacket->packetSize()) >= 0) {
+					mSetupState = VSS_ALL_HEADERS_SEEN;
+					return IOggDecoder::AHR_ALL_HEADERS_RECEIVED;
+				}
 				
-				mSetupState = VSS_ALL_HEADERS_SEEN;
-				return IOggDecoder::AHR_ALL_HEADERS_RECEIVED;
-			} else {
-				return IOggDecoder::AHR_INVALID_HEADER;
 			}
-			break;
+			return IOggDecoder::AHR_INVALID_HEADER;
+			
 		case VSS_ALL_HEADERS_SEEN:
 		case VSS_ERROR:
 		default:



More information about the commits mailing list