From c1853b94d2924c74e0e356371bf91c219da1302a Mon Sep 17 00:00:00 2001 From: Marcin Banasiak Date: Sun, 16 Nov 2008 11:01:25 +0000 Subject: [PATCH] - upstream patch to fix http://forum.taglib-sharp.com/viewtopic.php?f=5&t=276&p=821#p821 Changed files: taglib-sharp-add_extensions_mimetypes_thorough_mpeg_checking.patch -> 1.1 --- ...ons_mimetypes_thorough_mpeg_checking.patch | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 taglib-sharp-add_extensions_mimetypes_thorough_mpeg_checking.patch diff --git a/taglib-sharp-add_extensions_mimetypes_thorough_mpeg_checking.patch b/taglib-sharp-add_extensions_mimetypes_thorough_mpeg_checking.patch new file mode 100644 index 0000000..d36d0cd --- /dev/null +++ b/taglib-sharp-add_extensions_mimetypes_thorough_mpeg_checking.patch @@ -0,0 +1,92 @@ +Index: src/TagLib/Mpeg/AudioHeader.cs +=================================================================== +--- src/TagLib/Mpeg/AudioHeader.cs (revision 94327) ++++ src/TagLib/Mpeg/AudioHeader.cs (revision 94328) +@@ -252,7 +252,13 @@ + throw new CorruptFileException ( + "First byte did not match MPEG synch."); + +- if (data [1] < 0xE0) ++ // Checking bits from high to low: ++ // ++ // First 3 bits MUST be set. Bits 4 and 5 can ++ // be 00, 10, or 11 but not 01. One or more of ++ // bits 6 and 7 must be set. Bit 8 can be ++ // anything. ++ if ((data [1] & 0xE6) <= 0xE0 || (data [1] & 0x18) == 0x08) + throw new CorruptFileException ( + "Second byte did not match MPEG synch."); + +Index: src/TagLib/Ape/File.cs +=================================================================== +--- src/TagLib/Ape/File.cs (revision 117109) ++++ src/TagLib/Ape/File.cs (working copy) +@@ -40,6 +40,8 @@ + /// + [SupportedMimeType("taglib/ape", "ape")] + [SupportedMimeType("audio/x-ape")] ++ [SupportedMimeType("audio/ape")] ++ [SupportedMimeType("application/x-ape")] + public class File : TagLib.NonContainer.File + { + #region Private Fields +@@ -275,4 +277,4 @@ + + #endregion + } +-} +\ No newline at end of file ++} +Index: src/TagLib/Asf/File.cs +=================================================================== +--- src/TagLib/Asf/File.cs (revision 117109) ++++ src/TagLib/Asf/File.cs (working copy) +@@ -33,6 +33,7 @@ + [SupportedMimeType("taglib/wmv", "wmv")] + [SupportedMimeType("taglib/asf", "asf")] + [SupportedMimeType("audio/x-ms-wma")] ++ [SupportedMimeType("audio/x-ms-asf")] + [SupportedMimeType("video/x-ms-asf")] + public class File : TagLib.File + { +Index: src/TagLib/Ogg/File.cs +=================================================================== +--- src/TagLib/Ogg/File.cs (revision 117109) ++++ src/TagLib/Ogg/File.cs (working copy) +@@ -35,6 +35,8 @@ + /// and properties support for Ogg files. + /// + [SupportedMimeType("taglib/ogg", "ogg")] ++ [SupportedMimeType("taglib/oga", "oga")] ++ [SupportedMimeType("taglib/ogv", "ogv")] + [SupportedMimeType("application/ogg")] + [SupportedMimeType("application/x-ogg")] + [SupportedMimeType("audio/vorbis")] +@@ -42,6 +44,10 @@ + [SupportedMimeType("audio/x-vorbis+ogg")] + [SupportedMimeType("audio/ogg")] + [SupportedMimeType("audio/x-ogg")] ++ [SupportedMimeType("video/ogg")] ++ [SupportedMimeType("video/x-ogm+ogg")] ++ [SupportedMimeType("video/x-theora+ogg")] ++ [SupportedMimeType("video/x-theora")] + public class File : TagLib.File + { + #region Private Fields +Index: examples/ReadFromUri.cs +=================================================================== +--- examples/ReadFromUri.cs (revision 117109) ++++ examples/ReadFromUri.cs (working copy) +@@ -114,7 +114,11 @@ + + Console.WriteLine ("Total running time: " + (end - start)); + Console.WriteLine ("Total files read: " + songs_read); +- Console.WriteLine ("Average time per file: " + new TimeSpan ((end - start).Ticks / songs_read)); ++ ++ if (songs_read > 0) ++ { ++ Console.WriteLine ("Average time per file: " + new TimeSpan ((end - start).Ticks / songs_read)); ++ } + } + } + -- 2.43.0