]> granicus.if.org Git - taglib/commitdiff
Don't append a framing bit when writing Xiph comments to FLAC files since this
authorScott Wheeler <wheeler@kde.org>
Tue, 4 May 2004 01:47:01 +0000 (01:47 +0000)
committerScott Wheeler <wheeler@kde.org>
Tue, 4 May 2004 01:47:01 +0000 (01:47 +0000)
renders them unplayable with some players.  Thanks to Jason Lee for tracking
this down!

CCMAIL:75880-done@bugs.kde.org

git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@308437 283d02a7-25f6-0310-bc7c-ecb5cbfe19da

flac/flacfile.cpp
ogg/xiphcomment.cpp
ogg/xiphcomment.h

index 50fa324b24bce434ce686e5eda2f0e25bda854fc..b8315ee49e4fadf99d215bfabc197ba11e2cf1bb 100644 (file)
@@ -132,7 +132,7 @@ void FLAC::File::save()
       Tag::duplicate(d->tag, d->comment, true);
   }
 
-  d->xiphCommentData = d->comment->render();
+  d->xiphCommentData = d->comment->render(false);
 
   ByteVector v = ByteVector::fromUInt(d->xiphCommentData.size());
 
index 2e781bcbeaf4220fdd0e7e74d37d25a7d5858ef0..62c45ec41a7312a9e13107865ec8dec9ee88979c 100644 (file)
@@ -197,6 +197,11 @@ void Ogg::XiphComment::removeField(const String &key, const String &value)
 }
 
 ByteVector Ogg::XiphComment::render() const
+{
+  return render(true);
+}
+
+ByteVector Ogg::XiphComment::render(bool addFramingBit) const
 {
   ByteVector data;
 
@@ -238,8 +243,9 @@ ByteVector Ogg::XiphComment::render() const
   }
 
   // Append the "framing bit".
-
-  data.append(char(1));
+  if(addFramingBit)
+    data.append(char(1));
 
   return data;
 }
index 6e899fa1a499bee7ace48656c63d3a42c4b12104..dbcde9d5e61f89fe463a8526a0df64f650108347 100644 (file)
@@ -159,7 +159,16 @@ namespace TagLib {
       /*!
        * Renders the comment to a ByteVector suitable for inserting into a file.
        */
-      ByteVector render() const;
+      ByteVector render() const; // BIC: remove and merge with below
+
+      /*!
+       * Renders the comment to a ByteVector suitable for inserting into a file.
+       *
+       * If \a addFramingBit is true the standard Vorbis comment framing bit will
+       * be appended.  However some formats (notably FLAC) do not work with this
+       * in place.
+       */
+      ByteVector render(bool addFramingBit) const;
 
     protected:
       /*!