[xiph-commits] r8117 - in trunk/oggdsf: build/oggcodecs docs
scripts/new reg scripts
src/lib/codecs/flac/filters/dsfNativeFLACSource
illiminable at motherfish-iii.xiph.org
illiminable at motherfish-iii.xiph.org
Wed Oct 27 04:36:40 PDT 2004
Author: illiminable
Date: 2004-10-27 04:36:39 -0700 (Wed, 27 Oct 2004)
New Revision: 8117
Added:
trunk/oggdsf/docs/rel_proc.txt
trunk/oggdsf/scripts/new reg scripts/media_groups_flac.reg
trunk/oggdsf/scripts/new reg scripts/media_mime_aud_flac.reg
trunk/oggdsf/scripts/new reg scripts/mm_medlib_flac.reg
trunk/oggdsf/scripts/new reg scripts/mt_flac.reg
Modified:
trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
trunk/oggdsf/scripts/new reg scripts/wmp_mls.reg
trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.cpp
trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.h
trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourcePin.cpp
trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourcePin.h
Log:
* Tidied up native flac filter... works great now.
* All the registry scripts to support new flac .flac in the media library.
Modified: trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
===================================================================
--- trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj 2004-10-27 07:25:16 UTC (rev 8116)
+++ trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj 2004-10-27 11:36:39 UTC (rev 8117)
@@ -94,31 +94,31 @@
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_B721259605524EFE965E8E131C1558D5"
+ "OwnerKey" = "8:_02E7D9728C8944F1BD021329177F5140"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_8976C400668B453CB941859C4F3C6E27"
+ "OwnerKey" = "8:_EB09F87C612C40BCA34AC87060CFEFF1"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
+ "OwnerKey" = "8:_E1E372FA955046E6928BF533EA0AE6C3"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_273D851AE72C4D2EA8020A712DBFE5A3"
+ "OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_0D0DD40A31F842C68B09BE0CBDE1996B"
+ "OwnerKey" = "8:_D2048C8B212841C88E42F6ADDCA8B0A2"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -130,73 +130,73 @@
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_65015192414F476999A68339F89BEA57"
+ "OwnerKey" = "8:_B721259605524EFE965E8E131C1558D5"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_EB09F87C612C40BCA34AC87060CFEFF1"
+ "OwnerKey" = "8:_AC8962A7F212481095173AB7C8C89025"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_E1E372FA955046E6928BF533EA0AE6C3"
+ "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
+ "OwnerKey" = "8:_8976C400668B453CB941859C4F3C6E27"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_D2048C8B212841C88E42F6ADDCA8B0A2"
+ "OwnerKey" = "8:_65015192414F476999A68339F89BEA57"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_AC8962A7F212481095173AB7C8C89025"
+ "OwnerKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+ "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
+ "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
+ "OwnerKey" = "8:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
+ "OwnerKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
+ "OwnerKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
+ "OwnerKey" = "8:_273D851AE72C4D2EA8020A712DBFE5A3"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -208,13 +208,13 @@
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_0A1E63E5852E4F759F1A27E8F097727B"
+ "OwnerKey" = "8:_0D0DD40A31F842C68B09BE0CBDE1996B"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
- "OwnerKey" = "8:_02E7D9728C8944F1BD021329177F5140"
+ "OwnerKey" = "8:_0A1E63E5852E4F759F1A27E8F097727B"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -262,55 +262,55 @@
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_B721259605524EFE965E8E131C1558D5"
+ "OwnerKey" = "8:_02E7D9728C8944F1BD021329177F5140"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_DB60960DC12343B89500B86D5AB10D02"
+ "OwnerKey" = "8:_FD547F0196C24DFBB9CAFCCEC06561BC"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_8976C400668B453CB941859C4F3C6E27"
+ "OwnerKey" = "8:_EFEA71FFF2864107815DBDECCCCA1178"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_83AF8D74700947168B69E69E5160F082"
+ "OwnerKey" = "8:_EB09F87C612C40BCA34AC87060CFEFF1"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
+ "OwnerKey" = "8:_E4B8E67DA0E54BB3BB025BFCF536BF3B"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_273D851AE72C4D2EA8020A712DBFE5A3"
+ "OwnerKey" = "8:_E1E372FA955046E6928BF533EA0AE6C3"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_0D0DD40A31F842C68B09BE0CBDE1996B"
+ "OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_FD547F0196C24DFBB9CAFCCEC06561BC"
+ "OwnerKey" = "8:_DB60960DC12343B89500B86D5AB10D02"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_E4B8E67DA0E54BB3BB025BFCF536BF3B"
+ "OwnerKey" = "8:_D2048C8B212841C88E42F6ADDCA8B0A2"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -322,115 +322,115 @@
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_695A6D70DADB417491C0662D82245C2B"
+ "OwnerKey" = "8:_B721259605524EFE965E8E131C1558D5"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_65015192414F476999A68339F89BEA57"
+ "OwnerKey" = "8:_AC8962A7F212481095173AB7C8C89025"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_EFEA71FFF2864107815DBDECCCCA1178"
+ "OwnerKey" = "8:_A5AAB8CB90C548F1820BC101A765616C"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_EB09F87C612C40BCA34AC87060CFEFF1"
+ "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_E1E372FA955046E6928BF533EA0AE6C3"
+ "OwnerKey" = "8:_8D9A2E4C592D4118B80A4AE8394D8963"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
+ "OwnerKey" = "8:_8976C400668B453CB941859C4F3C6E27"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_D2048C8B212841C88E42F6ADDCA8B0A2"
+ "OwnerKey" = "8:_83AF8D74700947168B69E69E5160F082"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_AC8962A7F212481095173AB7C8C89025"
+ "OwnerKey" = "8:_72A8CAFC6236498AA2DE5E1CBCAFC91B"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_A5AAB8CB90C548F1820BC101A765616C"
+ "OwnerKey" = "8:_695A6D70DADB417491C0662D82245C2B"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+ "OwnerKey" = "8:_65EFE52655DF4119A626446C8F593760"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_8D9A2E4C592D4118B80A4AE8394D8963"
+ "OwnerKey" = "8:_65015192414F476999A68339F89BEA57"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_72A8CAFC6236498AA2DE5E1CBCAFC91B"
+ "OwnerKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_65EFE52655DF4119A626446C8F593760"
+ "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
+ "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
+ "OwnerKey" = "8:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
+ "OwnerKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
+ "OwnerKey" = "8:_408749AC43894882BEEBFF43737E505B"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_408749AC43894882BEEBFF43737E505B"
+ "OwnerKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
+ "OwnerKey" = "8:_273D851AE72C4D2EA8020A712DBFE5A3"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -454,13 +454,13 @@
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_0A1E63E5852E4F759F1A27E8F097727B"
+ "OwnerKey" = "8:_0D0DD40A31F842C68B09BE0CBDE1996B"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
- "OwnerKey" = "8:_02E7D9728C8944F1BD021329177F5140"
+ "OwnerKey" = "8:_0A1E63E5852E4F759F1A27E8F097727B"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -967,7 +967,7 @@
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:oggcodecs"
"ProductCode" = "8:{7E4AA44E-5561-436B-89E7-46D1EA1E1249}"
- "PackageCode" = "8:{9857E825-AA73-44CB-A0F2-D4FB2154E79B}"
+ "PackageCode" = "8:{FE8E8C2D-148B-4522-B67B-0682D00A42A0}"
"UpgradeCode" = "8:{1A644FEB-7597-4FAB-AADE-C2C7C64C5984}"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
@@ -1189,6 +1189,44 @@
}
}
}
+ "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_78CCE626DAF841CF8528C157820BB815"
+ {
+ "Name" = "8:FLAC"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_3A5F902E0F5C4F0B86BB17AB31356E8E"
+ {
+ "Name" = "8:"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:FLAC File (flac)"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_BBA372C6E312498EA87B42BB7B26E087"
+ {
+ "Name" = "8:Extensions"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:.flac"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_F2298C4C3EED4E7798F4937911D94677"
+ {
+ "Name" = "8:MIME Types"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:audio/x-flac"
+ }
+ }
+ }
}
"Values"
{
@@ -1386,6 +1424,68 @@
}
}
}
+ "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_7E0566F3D11A47D5BC5527993DAF5F47"
+ {
+ "Name" = "8:.flac"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_167FF10A216841A683A231157B36A459"
+ {
+ "Name" = "8:Permissions"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:3"
+ "Value" = "3:15"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_24701FBC2CA74F24AAA5EF7C3BE57753"
+ {
+ "Name" = "8:MediaType.Description"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:FLAC Audio"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_2A6FF123CACE475F9758A9E0E54B0CCA"
+ {
+ "Name" = "8:Runtime"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:3"
+ "Value" = "3:7"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_3B1B0BA13C9F45F5983560AD055295F7"
+ {
+ "Name" = "8:Extension.MIME"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:audio/x-flac"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_80C60F01DA8044E396925087984CA42D"
+ {
+ "Name" = "8:AlreadyRegistered"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:yes"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_BBCCC12D6165481DB5CBFD742D21BCEA"
+ {
+ "Name" = "8:PerceivedType"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:audio"
+ }
+ }
+ }
"{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_B23F950C10AE43698379426F64249D06"
{
"Name" = "8:.oga"
@@ -1608,6 +1708,44 @@
}
}
}
+ "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_FCC0B29DBB924EF38625CC21BBF899C0"
+ {
+ "Name" = "8:audio/x-flac"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_025F14D25C1544F09A6D432CFFE3E912"
+ {
+ "Name" = "8:AlreadyRegistered"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:yes"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_10A652EC622948C3BA7E41346CE51186"
+ {
+ "Name" = "8:Extension.Key"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:.flac"
+ }
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_3ECE01D4772C49FC9A12B71A3990C976"
+ {
+ "Name" = "8:"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:FLAC Audio File"
+ }
+ }
+ }
}
"Values"
{
@@ -1653,7 +1791,7 @@
}
"Values"
{
- "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_3B5FBBF0E10E4437A623BDCD8E8B776F"
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_481F36A8DC234AA4B99E8210448C8CBF"
{
"Name" = "8:spx"
"Condition" = "8:"
@@ -1669,6 +1807,14 @@
"ValueTypes" = "3:1"
"Value" = "8:audio"
}
+ "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_90EFFA39D9174144A494435F06F460A2"
+ {
+ "Name" = "8:flac"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "ValueTypes" = "3:1"
+ "Value" = "8:audio"
+ }
"{35AE352C-BC79-4EF9-ABD8-61F467188583}:_D1708BB9E02247469311608E25FF7A4C"
{
"Name" = "8:ogv"
@@ -2731,7 +2877,7 @@
}
"{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_273D851AE72C4D2EA8020A712DBFE5A3"
{
- "SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\filters\\dsfnativeflacsource\\debug\\dsfNativeFLACSource.dll"
+ "SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\filters\\dsfNativeFLACSource\\Debug\\dsfNativeFLACSource.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
Added: trunk/oggdsf/docs/rel_proc.txt
===================================================================
--- trunk/oggdsf/docs/rel_proc.txt 2004-10-27 07:25:16 UTC (rev 8116)
+++ trunk/oggdsf/docs/rel_proc.txt 2004-10-27 11:36:39 UTC (rev 8117)
@@ -0,0 +1,19 @@
+Release procedure.
+
+Update VERSIONS file.
+Update version information in installer.
+Update version in doxygen file.
+Update version in About file
+Update version in filter about box.
+Clean all versions
+Build all versions
+Package all versions
+Create source distribution
+Package source distribution
+Create help files
+Package help files
+Upload web help and packaged help.
+Upload versions
+Update index and history and sse html files.
+
+Inform all carrying sites of update.
\ No newline at end of file
Added: trunk/oggdsf/scripts/new reg scripts/media_groups_flac.reg
===================================================================
(Binary files differ)
Property changes on: trunk/oggdsf/scripts/new reg scripts/media_groups_flac.reg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/oggdsf/scripts/new reg scripts/media_mime_aud_flac.reg
===================================================================
(Binary files differ)
Property changes on: trunk/oggdsf/scripts/new reg scripts/media_mime_aud_flac.reg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/oggdsf/scripts/new reg scripts/mm_medlib_flac.reg
===================================================================
(Binary files differ)
Property changes on: trunk/oggdsf/scripts/new reg scripts/mm_medlib_flac.reg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/oggdsf/scripts/new reg scripts/mt_flac.reg
===================================================================
(Binary files differ)
Property changes on: trunk/oggdsf/scripts/new reg scripts/mt_flac.reg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/oggdsf/scripts/new reg scripts/wmp_mls.reg
===================================================================
(Binary files differ)
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.cpp 2004-10-27 07:25:16 UTC (rev 8116)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.cpp 2004-10-27 11:36:39 UTC (rev 8117)
@@ -67,18 +67,14 @@
, mSeekRequest(0)
, mTotalNumSamples(0)
, mWasEOF(false)
-
- //, mDecoder(NULL)
{
m_pLock = new CCritSec;
mCodecLock = new CCritSec;
- debugLog.open("G:\\logs\\NativeFLAC.log", ios_base::out);
mFLACSourcePin = new NativeFLACSourcePin(this, m_pLock);
}
NativeFLACSourceFilter::~NativeFLACSourceFilter(void)
{
- debugLog.close();
delete mFLACSourcePin;
mFLACSourcePin = NULL;
delete mCodecLock;
@@ -89,7 +85,6 @@
return 1;
}
CBasePin* NativeFLACSourceFilter::GetPin(int inPinNo) {
-
if (inPinNo == 0) {
return mFLACSourcePin;
} else {
@@ -104,18 +99,14 @@
//IFileSource Interface
STDMETHODIMP NativeFLACSourceFilter::GetCurFile(LPOLESTR* outFileName, AM_MEDIA_TYPE* outMediaType) {
- //Return the filename and mediatype of the raw data
-
-
LPOLESTR x = SysAllocString(mFileName.c_str());
*outFileName = x;
-
return S_OK;
}
-//ANX::: Seek table will need modifying to handle this.
+
STDMETHODIMP NativeFLACSourceFilter::Load(LPCOLESTR inFileName, const AM_MEDIA_TYPE* inMediaType) {
- //Initialise the file here and setup all the streams
+ //Initialise the file here and setup the stream
CAutoLock locLock(m_pLock);
mFileName = inFileName;
@@ -124,7 +115,6 @@
mInputFile.seekg(0, ios_base::end);
mFileSize = mInputFile.tellg();
mInputFile.seekg(0, ios_base::beg);
- debugLog<<"File size is = "<<mFileSize<<endl;
unsigned char locBuff[64];
mInputFile.read((char*)&locBuff, 64);
@@ -132,49 +122,17 @@
const unsigned char FLAC_BPS_START_MASK = 1; //00000001
const unsigned char FLAC_BPS_END_MASK = 240; //11110000
- //Fix the format block data... use header version and other version.
- //mFLACFormatBlock->FLACVersion = FLACMath::charArrToULong(mCodecHeaders->getPacket(1)->packetData() + 28);
mNumChannels = (((locBuff[20]) & FLAC_CHANNEL_MASK) >> 1) + 1;
mSampleRate = (iBE_Math::charArrToULong(&locBuff[18])) >> 12;
-
- mBitsPerSample = (((locBuff[20] & FLAC_BPS_START_MASK) << 4) |
- ((locBuff[21] & FLAC_BPS_END_MASK) >> 4)) + 1;
-
-
+ mBitsPerSample = (((locBuff[20] & FLAC_BPS_START_MASK) << 4) | ((locBuff[21] & FLAC_BPS_END_MASK) >> 4)) + 1;
mTotalNumSamples = (((__int64)(locBuff[21] % 16)) << 32) + ((__int64)(iBE_Math::charArrToULong(&locBuff[22])));
- debugLog<<mNumChannels<<" channels with "<<mSampleRate<<" Hz @ "<<mBitsPerSample<<" bits per sample"<<endl;
- debugLog<<"Total num samples = "<<mTotalNumSamples<<endl;
-
//TODO::: NEed to handle the case where the number of samples is zero by making it non-seekable.
mInputFile.seekg(0, ios_base::beg);
- debugLog<<"Pre init"<<endl;
init();
- debugLog<<"Post init"<<endl;
bool locResult = process_until_end_of_metadata();
- debugLog<<"Post meta data call..."<<endl;
- if (locResult) {
- debugLog<<"Process meta data ok"<<endl;
- }
- //Strip the extension...
- //size_t locDotPos = mFileName.find_last_of('.');
- //if (locDotPos != ios_base::npos) {
- // mHDRFileName = mFileName.substr(0, locDotPos);
- // mHDRFileName += ".hdr";
- //} else {
- // return S_FALSE;
- //}
-
- //mInputFile.open(StringHelper::toNarrowStr(mFileName), ios_base::in | ios_base::binary);
-
- //if (!mInputFile.is_open()) {
- // return S_FALSE;
- //}
-
-
-
return S_OK;
}
@@ -192,81 +150,51 @@
//IMEdiaStreaming
STDMETHODIMP NativeFLACSourceFilter::Run(REFERENCE_TIME tStart) {
- debugLog<<"RUN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
- const REFERENCE_TIME A_LONG_TIME = UNITS * 1000;
CAutoLock locLock(m_pLock);
- //debugLog<<"Run : time = "<<tStart<<endl;
- //DeliverNewSegment(tStart, tStart + A_LONG_TIME, 1.0);
return CBaseFilter::Run(tStart);
-
-
}
STDMETHODIMP NativeFLACSourceFilter::Pause(void) {
CAutoLock locLock(m_pLock);
- //debugLog << "** Pause called **"<<endl;
- debugLog<<"PAUSE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl;
if (m_State == State_Stopped) {
- //debugLog << "Was in stopped state... starting thread"<<endl;
if (ThreadExists() == FALSE) {
Create();
}
CallWorker(THREAD_RUN);
}
- //debugLog<<"Was NOT is stopped state, not doing much at all..."<<endl;
-
+
HRESULT locHR = CBaseFilter::Pause();
-
return locHR;
}
STDMETHODIMP NativeFLACSourceFilter::Stop(void) {
CAutoLock locLock(m_pLock);
- //debugLog<<"** Stop Called ** "<<endl;
CallWorker(THREAD_EXIT);
Close();
- debugLog<<"Stop ##################################################################"<<endl;
- debugLog<<"Pre seek to 0"<<endl;
mJustSeeked = true;
mSeekRequest = 0;
mUpto = 0;
- debugLog<<"Post seek to 0"<<endl;
mFLACSourcePin->DeliverBeginFlush();
mFLACSourcePin->DeliverEndFlush();
return CBaseFilter::Stop();
}
HRESULT NativeFLACSourceFilter::DataProcessLoop() {
-
- debugLog<<"Starting loop ***********************************************"<<endl;
DWORD locCommand = 0;
bool res = false;
while (true) {
if(CheckRequest(&locCommand) == TRUE) {
- debugLog<<"DataProcessLoop : Thread Command issued... leaving loop."<<endl;
-
return S_OK;
}
{
CAutoLock locLock(mCodecLock);
if (mJustSeeked) {
mJustSeeked = false;
- debugLog<<"!!!!!!!!!!!!!!!!!!!!!!! SEEK ABSOLUTE 0"<<endl;
bool res2 = false;
-
res2 = seek_absolute(mSeekRequest);
-
- if (res2) {
- debugLog<<"Seek absolute success"<<endl;
- }
}
- debugLog<<"Process it"<<endl;
res = process_single();
- if (res) {
- debugLog<<"Process OK"<<endl;
- } else {
- debugLog<<"Process FAILED"<<endl;
- }
+
if (mWasEOF) {
break;
}
@@ -283,29 +211,18 @@
//CAMThread Stuff
DWORD NativeFLACSourceFilter::ThreadProc(void) {
- //debugLog << "Thread Proc Called..."<<endl;
while(true) {
DWORD locThreadCommand = GetRequest();
- //debugLog << "Command = "<<locThreadCommand<<endl;
switch(locThreadCommand) {
case THREAD_EXIT:
- //debugLog << "EXIT ** "<<endl;
Reply(S_OK);
return S_OK;
- //case THREAD_PAUSE:
- // // we are paused already
- // Reply(S_OK);
- // break;
-
case THREAD_RUN:
- //debugLog << "RUN ** "<<endl;
Reply(S_OK);
DataProcessLoop();
break;
}
-
-
}
return S_OK;
}
@@ -315,71 +232,48 @@
const unsigned long BUFF_SIZE = 8192;
mInputFile.read((char*)outBuffer, BUFF_SIZE);
*outNumBytes = mInputFile.gcount();
- debugLog<<"Read num bytes = "<<*outNumBytes<<endl;
- if (mInputFile.eof()) {
- mWasEOF = true;
- } else {
- mWasEOF=false;
- }
+ mWasEOF = mInputFile.eof();
return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
}
::FLAC__SeekableStreamDecoderSeekStatus NativeFLACSourceFilter::seek_callback(FLAC__uint64 inSeekPos) {
- debugLog<<"Seeking to "<<inSeekPos<<endl;
mInputFile.seekg(inSeekPos);
return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
}
::FLAC__SeekableStreamDecoderTellStatus NativeFLACSourceFilter::tell_callback(FLAC__uint64* outTellPos) {
*outTellPos = mInputFile.tellg();
- debugLog<<"Tell = "<<*outTellPos<<endl;
return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
}
::FLAC__SeekableStreamDecoderLengthStatus NativeFLACSourceFilter::length_callback(FLAC__uint64* outLength) {
*outLength = mFileSize;
- debugLog<<"Requested length = "<<mFileSize<<endl;
return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
}
::FLAC__StreamDecoderWriteStatus NativeFLACSourceFilter::write_callback(const FLAC__Frame* inFrame,const FLAC__int32 *const inBuffer[]) {
//Do the magic !
if (! mBegun) {
-
+ //This may not even be needed any more.
mBegun = true;
const int SIZE_16_BITS = 2;
mNumChannels = inFrame->header.channels;
mFrameSize = mNumChannels * SIZE_16_BITS;
mSampleRate = inFrame->header.sample_rate;
-
}
- debugLog<<"Write callback"<<endl;
+
unsigned long locNumFrames = inFrame->header.blocksize;
unsigned long locActualSize = locNumFrames * mFrameSize;
unsigned long locTotalFrameCount = locNumFrames * mNumChannels;
- //BUG::: There's a bug here. Implicitly assumes 2 channels.
+ //BUG::: There's a bug here. Implicitly assumes 2 channels. I think.
unsigned char* locBuff = new unsigned char[locActualSize]; //Gives to the deliverdata method
//It could actually be a single buffer for the class.
-
signed short* locShortBuffer = (signed short*)locBuff; //Don't delete this.
signed short tempInt = 0;
int tempLong = 0;
float tempFloat = 0;
-
- //FIX:::Move the clipping to the abstract function
- //Make sure our sample buffer is big enough
-
- //Modified for FLAC int32 not float
-
-
- //Must interleave and convert sample size.
for(unsigned long i = 0; i < locNumFrames; i++) {
for (unsigned long j = 0; j < mNumChannels; j++) {
-
-
- //No clipping required for ints
- //FIX:::Take out the unnescessary variable.
tempLong = inBuffer[j][i];
- //Convert 32 bit to 16 bit
//FIX::: Why on earth are you dividing by 2 ? It does not make sense !
tempInt = (signed short)(tempLong/2);
@@ -388,23 +282,19 @@
locShortBuffer++;
}
}
-
-
- debugLog<<"Size = "<<locActualSize<<"Frames from "<<mUpto<<" for "<<locNumFrames<<endl;
mFLACSourcePin->deliverData(locBuff, locActualSize, (mUpto*UNITS) / mSampleRate, ((mUpto+locNumFrames)*UNITS) / mSampleRate);
mUpto += locNumFrames;
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
}
void NativeFLACSourceFilter::metadata_callback(const FLAC__StreamMetadata* inMetaData) {
- debugLog<<"Meta callback..."<<endl;
+
}
void NativeFLACSourceFilter::error_callback(FLAC__StreamDecoderErrorStatus inStatus) {
- debugLog<<"Error callback..."<<endl;
+
}
bool NativeFLACSourceFilter::eof_callback(void) {
- debugLog<<"EOF Req"<<endl;
return mInputFile.eof();
}
@@ -424,10 +314,8 @@
}
STDMETHODIMP NativeFLACSourceFilter::IsFormatSupported(const GUID *pFormat) {
if (*pFormat == TIME_FORMAT_MEDIA_TIME) {
- //debugLog<<"IsFormatSupported : TRUE"<<endl;
return S_OK;
} else {
- //debugLog<<"IsFormatSupported : FALSE !!!"<<endl;
return S_FALSE;
}
}
@@ -457,36 +345,26 @@
return E_NOTIMPL;
}
STDMETHODIMP NativeFLACSourceFilter::SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags){
- debugLog<<"Request seek to "<<*pCurrent<<endl;
-
unsigned __int64 locSampleToSeek = (*pCurrent) * mSampleRate/ UNITS;
- debugLog<<"W**** Which is sample no = "<<locSampleToSeek<<endl;
mFLACSourcePin->DeliverBeginFlush();
mFLACSourcePin->DeliverEndFlush();
+
bool locRes = false;
{
CAutoLock locLock(mCodecLock);
mUpto = 0;
- //locRes = seek_absolute(locSampleToSeek);
mJustSeeked = true;
mSeekRequest = locSampleToSeek;
}
- if (locRes) {
- debugLog<<"Seek suceeded"<<endl;
- } else {
- debugLog<<"Seek failed"<<endl;
- }
return S_OK;
}
STDMETHODIMP NativeFLACSourceFilter::GetPositions(LONGLONG *pCurrent, LONGLONG *pStop){
- debugLog<<"Calling get positions _ NOTIMPL"<<endl;
return E_NOTIMPL;
}
STDMETHODIMP NativeFLACSourceFilter::GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest){
*pEarliest = 0;
*pLatest = (mTotalNumSamples * UNITS) / mSampleRate;
- debugLog<<"Get available"<<endl;
return S_OK;
}
STDMETHODIMP NativeFLACSourceFilter::SetRate(double dRate){
@@ -502,10 +380,8 @@
}
STDMETHODIMP NativeFLACSourceFilter::IsUsingTimeFormat(const GUID *pFormat){
if (*pFormat == TIME_FORMAT_MEDIA_TIME) {
- //debugLog<<"IsFormatSupported : TRUE"<<endl;
return S_OK;
} else {
- //debugLog<<"IsFormatSupported : FALSE !!!"<<endl;
return S_FALSE;
}
}
\ No newline at end of file
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.h 2004-10-27 07:25:16 UTC (rev 8116)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.h 2004-10-27 11:36:39 UTC (rev 8117)
@@ -29,18 +29,25 @@
//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//===========================================================================
#pragma once
+//Local Includes
#include "dsfNativeFLACSource.h"
#include "NativeFLACSourcePin.h"
+
+//Library Includes
#include "FLAC++/decoder.h"
#include "StringHelper.h"
#include "iBE_Math.h"
+using namespace FLAC::Decoder;
+
+//STL Includes
#include <string>
using namespace std;
-using namespace FLAC::Decoder;
+//Forward Declarations
+class NativeFLACSourcePin;
-class NativeFLACSourcePin;
class NativeFLACSourceFilter
+ //Base Classes
: public CBaseFilter
, public IFileSourceFilter
, public IAMFilterMiscFlags
@@ -49,27 +56,31 @@
, protected FLAC::Decoder::SeekableStream
{
public:
+ //Friends
friend class NativeFLACSourcePin;
+
+ //Constants
enum eThreadCommands {
THREAD_EXIT = 0,
THREAD_PAUSE = 1,
THREAD_RUN = 2
};
+
+ //COM Stuff
DECLARE_IUNKNOWN
STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
+ static CUnknown* WINAPI CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
+ //Constructors
NativeFLACSourceFilter(void);
virtual ~NativeFLACSourceFilter(void);
- static CUnknown* WINAPI CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
-
//IBaseFilter Pure Virtuals
virtual int GetPinCount();
virtual CBasePin* GetPin(int inPinNo);
//IAMFilterMiscFlags Interface
ULONG STDMETHODCALLTYPE GetMiscFlags(void);
- //
//IFileSource Interface
virtual STDMETHODIMP GetCurFile(LPOLESTR* outFileName, AM_MEDIA_TYPE* outMediaType);
@@ -84,66 +95,61 @@
virtual DWORD ThreadProc(void);
//FLAC Virtuals
+ virtual ::FLAC__SeekableStreamDecoderReadStatus read_callback(FLAC__byte outBuffer[], unsigned int* outNumBytes);
+ virtual ::FLAC__SeekableStreamDecoderSeekStatus seek_callback(FLAC__uint64 inSeekPos);
+ virtual ::FLAC__SeekableStreamDecoderTellStatus tell_callback(FLAC__uint64* outTellPos);
+ virtual ::FLAC__SeekableStreamDecoderLengthStatus length_callback(FLAC__uint64* outLength);
+ virtual ::FLAC__StreamDecoderWriteStatus write_callback(const FLAC__Frame* outFrame,const FLAC__int32 *const outBuffer[]);
+ virtual void metadata_callback(const FLAC__StreamMetadata* inMetaData);
+ virtual void error_callback(FLAC__StreamDecoderErrorStatus inStatus);
+ virtual bool eof_callback(void);
- ::FLAC__SeekableStreamDecoderReadStatus read_callback(FLAC__byte outBuffer[], unsigned int* outNumBytes);
- ::FLAC__SeekableStreamDecoderSeekStatus seek_callback(FLAC__uint64 inSeekPos);
- ::FLAC__SeekableStreamDecoderTellStatus tell_callback(FLAC__uint64* outTellPos);
- ::FLAC__SeekableStreamDecoderLengthStatus length_callback(FLAC__uint64* outLength);
- ::FLAC__StreamDecoderWriteStatus write_callback(const FLAC__Frame* outFrame,const FLAC__int32 *const outBuffer[]);
- void metadata_callback(const FLAC__StreamMetadata* inMetaData);
- void error_callback(FLAC__StreamDecoderErrorStatus inStatus);
-
-
- bool eof_callback(void);
- //
//IMediaSeeking Interface
- virtual STDMETHODIMP GetCapabilities(DWORD *pCapabilities);
- virtual STDMETHODIMP CheckCapabilities(DWORD *pCapabilities);
- virtual STDMETHODIMP IsFormatSupported(const GUID *pFormat);
- virtual STDMETHODIMP QueryPreferredFormat(GUID *pFormat);
- virtual STDMETHODIMP SetTimeFormat(const GUID *pFormat);
- virtual STDMETHODIMP GetTimeFormat( GUID *pFormat);
- virtual STDMETHODIMP GetDuration(LONGLONG *pDuration);
- virtual STDMETHODIMP GetStopPosition(LONGLONG *pStop);
- virtual STDMETHODIMP GetCurrentPosition(LONGLONG *pCurrent);
- virtual STDMETHODIMP ConvertTimeFormat(LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat);
- virtual STDMETHODIMP SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags);
- virtual STDMETHODIMP GetPositions(LONGLONG *pCurrent, LONGLONG *pStop);
- virtual STDMETHODIMP GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest);
- virtual STDMETHODIMP SetRate(double dRate);
- virtual STDMETHODIMP GetRate(double *dRate);
- virtual STDMETHODIMP GetPreroll(LONGLONG *pllPreroll);
- virtual STDMETHODIMP IsUsingTimeFormat(const GUID *pFormat);
- //
+ virtual STDMETHODIMP GetCapabilities(DWORD *pCapabilities);
+ virtual STDMETHODIMP CheckCapabilities(DWORD *pCapabilities);
+ virtual STDMETHODIMP IsFormatSupported(const GUID *pFormat);
+ virtual STDMETHODIMP QueryPreferredFormat(GUID *pFormat);
+ virtual STDMETHODIMP SetTimeFormat(const GUID *pFormat);
+ virtual STDMETHODIMP GetTimeFormat( GUID *pFormat);
+ virtual STDMETHODIMP GetDuration(LONGLONG *pDuration);
+ virtual STDMETHODIMP GetStopPosition(LONGLONG *pStop);
+ virtual STDMETHODIMP GetCurrentPosition(LONGLONG *pCurrent);
+ virtual STDMETHODIMP ConvertTimeFormat(LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat);
+ virtual STDMETHODIMP SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags);
+ virtual STDMETHODIMP GetPositions(LONGLONG *pCurrent, LONGLONG *pStop);
+ virtual STDMETHODIMP GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest);
+ virtual STDMETHODIMP SetRate(double dRate);
+ virtual STDMETHODIMP GetRate(double *dRate);
+ virtual STDMETHODIMP GetPreroll(LONGLONG *pllPreroll);
+ virtual STDMETHODIMP IsUsingTimeFormat(const GUID *pFormat);
-
-
protected:
+ //Helper Methods
+ HRESULT DataProcessLoop();
- HRESULT DataProcessLoop();
+ //Pin Class
NativeFLACSourcePin* mFLACSourcePin;
+
+ //Source File Members
wstring mFileName;
- wstring mHDRFileName;
-
fstream mInputFile;
-
unsigned long mFileSize;
- fstream debugLog;
-
+ //State Variables
bool mBegun;
bool mJustSeeked;
__int64 mSeekRequest;
bool mWasEOF;
-
unsigned long mUpto;
+ //Stream info data.
unsigned long mNumChannels;
unsigned long mFrameSize;
unsigned long mSampleRate;
unsigned long mBitsPerSample;
__int64 mTotalNumSamples;
+ //Critical Section to protect codec.
CCritSec* mCodecLock;
};
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourcePin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourcePin.cpp 2004-10-27 07:25:16 UTC (rev 8116)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourcePin.cpp 2004-10-27 11:36:39 UTC (rev 8117)
@@ -37,10 +37,6 @@
, mDataQueue(NULL)
{
-
- debugLog.open("G:\\logs\\flacsourcepin_.log", ios_base::out);
-
-
//Subvert COM and do this directly... this way, the source filter won't expose the interface to the
// graph but we can still delegate to it.
IMediaSeeking* locSeeker = NULL;
@@ -51,7 +47,8 @@
NativeFLACSourcePin::~NativeFLACSourcePin(void)
{
SetDelegate(NULL); //Avoid infinite destructor loop.
- debugLog.close();
+ delete mDataQueue;
+ mDataQueue = NULL;
}
STDMETHODIMP NativeFLACSourcePin::NonDelegatingQueryInterface(REFIID riid, void **ppv)
@@ -66,28 +63,24 @@
HRESULT NativeFLACSourcePin::DeliverNewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)
{
- debugLog<<"New seg "<<tStart<<" - "<<tStop<<endl;
mDataQueue->NewSegment(tStart, tStop, dRate);
return S_OK;
}
HRESULT NativeFLACSourcePin::DeliverEndOfStream(void)
{
- debugLog<<"EOS"<<endl;
mDataQueue->EOS();
return S_OK;
}
HRESULT NativeFLACSourcePin::DeliverEndFlush(void)
{
- debugLog<<"End flush"<<endl;
mDataQueue->EndFlush();
return S_OK;
}
HRESULT NativeFLACSourcePin::DeliverBeginFlush(void)
{
- debugLog<<"Begin flush"<<endl;
mDataQueue->BeginFlush();
return S_OK;
}
@@ -95,12 +88,10 @@
HRESULT NativeFLACSourcePin::CompleteConnect (IPin *inReceivePin)
{
mFilterHR = S_OK;
- //Set the delegate for seeking
- //((BasicSeekable*)(inReceivePin))->SetDelegate(this);
- //This may cause issue if pins are disconnected and reconnected
- //DELETE in DEStructor
+ //Deleted in destructor
mDataQueue = new COutputQueue (inReceivePin, &mFilterHR, FALSE, TRUE,1,TRUE, NUM_BUFFERS);
if (FAILED(mFilterHR)) {
+ //TODO::: Probably should handle this !
mFilterHR = mFilterHR;
}
@@ -115,10 +106,6 @@
//CSourceStream virtuals
HRESULT NativeFLACSourcePin::GetMediaType(int inPosition, CMediaType* outMediaType) {
- //Put it in from the info we got in the constructor.
- //NOTE::: May have missed some fields ????
- //NOTE::: May want to check for null pointers
- //outMediaType->SetFormat(mMediaType->Format(), mMediaType->FormatLength());
if (inPosition == 0) {
outMediaType->SetType(&MEDIATYPE_Audio);
outMediaType->SetSubtype(&MEDIASUBTYPE_PCM);
@@ -126,7 +113,6 @@
outMediaType->SetTemporalCompression(FALSE);
outMediaType->SetSampleSize(0);
-
WAVEFORMATEX* locFormat = (WAVEFORMATEX*)outMediaType->AllocFormatBuffer(sizeof(WAVEFORMATEX));
locFormat->wFormatTag = WAVE_FORMAT_PCM;
@@ -136,9 +122,7 @@
locFormat->nBlockAlign = (mParentFilter->mNumChannels) * (mParentFilter->mBitsPerSample >> 3);
locFormat->nAvgBytesPerSec = ((mParentFilter->mNumChannels) * (mParentFilter->mBitsPerSample >> 3)) * mParentFilter->mSampleRate;
locFormat->cbSize = 0;
- //outMediaType->pbFormat = locFormat;
-
-
+
return S_OK;
} else {
return VFW_S_NO_MORE_ITEMS;
@@ -152,13 +136,11 @@
}
}
HRESULT NativeFLACSourcePin::DecideBufferSize(IMemAllocator* inoutAllocator, ALLOCATOR_PROPERTIES* inoutInputRequest) {
-
HRESULT locHR = S_OK;
ALLOCATOR_PROPERTIES locReqAlloc;
ALLOCATOR_PROPERTIES locActualAlloc;
-
locReqAlloc.cbAlign = 1;
locReqAlloc.cbBuffer = BUFFER_SIZE;
locReqAlloc.cbPrefix = 0;
@@ -173,71 +155,47 @@
locHR = inoutAllocator->Commit();
return locHR;
-
}
//This method is responsible for deleting the incoming buffer.
HRESULT NativeFLACSourcePin::deliverData(unsigned char* inBuff, unsigned long inBuffSize, __int64 inStart, __int64 inEnd) {
//Locks !!
- debugLog<<"Deliver data..."<<endl;
+
IMediaSample* locSample = NULL;
REFERENCE_TIME locStart = inStart;
REFERENCE_TIME locStop = inEnd;
- debugLog<<"Times = "<<inStart<<" - "<<inEnd<<endl;
- //debugLog<<"Start : "<<locStart<<endl;
- //debugLog<<"End : "<<locStop<<endl;
- DbgLog((LOG_TRACE, 2, "Getting Buffer in Source Pin..."));
+
HRESULT locHR = GetDeliveryBuffer(&locSample, &locStart, &locStop, NULL);
- DbgLog((LOG_TRACE, 2, "* After get Buffer in Source Pin..."));
+
//Error checks
if (locHR != S_OK) {
- debugLog<<"********************************************** FAILED !!"<<endl;
- //Stopping, fluching or error
- //debugLog<<"Failure... No buffer"<<endl;
delete[] inBuff;
return locHR;
}
- //More hacks so we can send a timebase after a seek, since granule pos in theora
- // is not convertible in both directions to time.
-
- //TIMESTAMP FIXING !
locSample->SetTime(&locStart, &locStop);
- //Yes this is way dodgy !
- //locSample->SetMediaTime(&mParentFilter->mSeekTimeBase, &mParentFilter->mSeekTimeBase);
locSample->SetSyncPoint(TRUE);
-
// Create a pointer for the samples buffer
BYTE* locBuffer = NULL;
locSample->GetPointer(&locBuffer);
- //DbgLog((LOG_TRACE, 2, "* Packet size is %d"));
if (locSample->GetSize() >= inBuffSize) {
-
memcpy((void*)locBuffer, (const void*)inBuff, inBuffSize);
locSample->SetActualDataLength(inBuffSize);
locHR = mDataQueue->Receive(locSample);
- //REF_CHECK::: In theory should release here.
- //The sample has ref_count of 1 by virtue of it's creation... we should release that 1 ref count here.
-
if (locHR != S_OK) {
- //debugLog << "Failure... Queue rejected sample..."<<endl;
- //Stopping ??
- debugLog<<"FAILED TO RECEIVE !!!"<<endl;
delete[] inBuff;
return locHR;
} else {
- debugLog<<" $$$$$ Everythings sweet"<<endl;
delete[] inBuff;
return S_OK;
}
} else {
- DbgLog((LOG_TRACE, 2, "* BUFFER TOO SMALL... FATALITY !!"));
delete[] inBuff;
throw 0;
}
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourcePin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourcePin.h 2004-10-27 07:25:16 UTC (rev 8116)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourcePin.h 2004-10-27 11:36:39 UTC (rev 8117)
@@ -30,26 +30,30 @@
//===========================================================================
#pragma once
+
+//Local Includes
#include "dsfNativeFLACSource.h"
-//#include "NativeFLACSourceFilter.h"
+
+//Library Includes
#include "BasicSeekable.h"
-#include <fstream>
-using namespace std;
+//Forward Declararions.
class NativeFLACSourceFilter;
class NativeFLACSourcePin
+ //Base classes.
: public CBaseOutputPin
, public BasicSeekable
{
public:
-
+ //COM Stuff
DECLARE_IUNKNOWN
STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
+ //Constructors.
NativeFLACSourcePin( NativeFLACSourceFilter* inParentFilter, CCritSec* inFilterLock);
-
virtual ~NativeFLACSourcePin(void);
+ //Constants
static const unsigned long BUFFER_SIZE = 65536; //What should this be ????
static const unsigned long NUM_BUFFERS = 10;
@@ -58,8 +62,7 @@
virtual HRESULT CheckMediaType(const CMediaType* inMediaType);
virtual HRESULT DecideBufferSize(IMemAllocator* inoutAllocator, ALLOCATOR_PROPERTIES* inoutInputRequest);
-
- //IPin
+ //IPin virtuals
virtual HRESULT CompleteConnect (IPin *inReceivePin);
virtual HRESULT BreakConnect(void);
virtual HRESULT DeliverNewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
@@ -67,15 +70,12 @@
virtual HRESULT DeliverEndFlush(void);
virtual HRESULT DeliverBeginFlush(void);
- //
+ //Helper method
HRESULT deliverData(unsigned char* inBuff, unsigned long inBuffSize, __int64 inStart, __int64 inEnd);
protected:
- //fstream debugLog;
HRESULT mFilterHR;
+
+ //Member variables.
COutputQueue* mDataQueue;
-
NativeFLACSourceFilter* mParentFilter;
-
- fstream debugLog;
-
};
More information about the commits
mailing list