<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    <tt>Hi Mathias,<br>
      <br>
      thank for your detailed explanation, it helped alot.<br>
      <br>
      It would also have helped if I would have read the<br>
      <a href="http://id3.org/id3v2.4.0-changes">http://id3.org/id3v2.4.0-changes</a></tt><tt>
      before ;-)<br>
      <br>
      It states: <br>
      <br>
        "Unsynchronisation [S:6.1] is done on frame level,<br>
        instead of on tag level, making it easier to skip<br>
        frames, increasing the streamability of the tag."<br>
      <br>
      In the end, all made sense.<br>
      <br>
      best wishes,<br>
      <br>
      matthias mayrock<br>
      <br>
      <br>
      Am 8/12/2010 3:47 PM, schrieb Mathias Kunter:</tt>
    <blockquote cite="mid:84334.96457.qm@web27005.mail.ukl.yahoo.com"
      type="cite">
      <style type="text/css"><!-- DIV {margin:0px;} --></style>
      <div style="font-family: arial,helvetica,sans-serif; font-size:
        10pt;">
        <div><tt>> What confused me was that the spec of 2.4 states
            that<br>
            > the frame header includes the size after
            unsynchronization.<br>
            <br>
            Yes, that's correct. The frame size is always meant as
            "frame size within the source data stream" - otherwise you
            couldn't skip a frame without decoding it.<br>
            <br>
            > So if a tag has unsynchronization<br>
            > turned off, but the tag turned on, the frame size
            includes the size<br>
            > after unsynchronization.<br>
            <br>
            I guess you meant "but the FRAME turned on". Well, if a
            frame has been unsynchronisated, then the frame size
            *always* is the size after the unsynchronisation.<br>
            <br>
            Regarding the unsynchronisation flags:<br>
            <br>
            Set the FRAME unsynchronisation flag ONLY if the frame data
            has been altered by the unsynchronisation. The frame data
            often isn't changed by the unsynchronisation. Don't set the
            flag in this case, your tags will be more compatible with
            other ID3 implementations.<br>
            <br>
            Set the TAG unsynchronisation flag ONLY if ALL of your
            frames have a set unsynchronisation flag. This should happen
            rarely, at least when using the default ISO-8859-1 text
            encoding (Unicode BOM's can require unsynchronisation more
            often, but that's a different story).<br>
            <br>
            I hope this helps.<br>
            <br>
            Mathias Kunter<br>
            <br>
          </tt></div>
        <div style="font-family: arial,helvetica,sans-serif; font-size:
          10pt;"><tt><br>
          </tt>
          <div style="font-family: arial,helvetica,sans-serif;
            font-size: 10pt;"><tt><font size="2">
                <hr size="1"><b><span style="font-weight: bold;">Von:</span></b>
                Matthias Mayrock <a class="moz-txt-link-rfc2396E" href="mailto:mail@mroc.de"><mail@mroc.de></a><br>
                <b><span style="font-weight: bold;">An:</span></b>
                <a class="moz-txt-link-abbreviated" href="mailto:id3v2@id3.org">id3v2@id3.org</a><br>
                <b><span style="font-weight: bold;">Gesendet:</span></b>
                Montag, den 9. August 2010, 19:14:06 Uhr<br>
                <b><span style="font-weight: bold;">Betreff:</span></b>
                Re: [ID3 Dev] Unsynchronization for Dummies<br>
              </font></tt><tt><br>
                Hi Peter,<br>
              <br>
              thank you for your reply. I will follow your advice and
              try to<br>
              not write synchronized tags at all.<br>
              <br>
              Nevertheless I'll want to support the feature and I think
              I got<br>
              it now. What confused me was that the spec of 2.4 states
              that<br>
              the frame header includes the size after
              unsynchronization.<br>
              <br>
              If I understand this correctly it is only the case if the
              whole tag<br>
              has unsynchronization turned off but a frame turned it on.
              This<br>
              would at least make sense to me. So if a tag has
              unsynchronization<br>
              turned off, but the tag turned on, the frame size includes
              the size<br>
              after unsynchronization.<br>
              <br>
              thank you very much and best wishes,<br>
              <br>
              matthias mayrock<br>
              <br>
              <br>
              <br>
              Am 8/8/2010 5:34 PM, schrieb Peter Bennett:<br>
              > Hi Matthias<br>
              ><br>
              > I recommend against writing Unsynchronized  frames.
              Players do not <br>
              > need them these days, and one version of Windows
              media player would <br>
              > not play an mp3 file file if the tag had
              unsynchronized frames. My <br>
              > method is to be able to read unsynchronized frames
              but not to write them.<br>
              ><br>
              > Peter Bennett<br>
              ><br>
              > On 8/6/2010 1:56 PM, Matthias Mayrock wrote:<br>
              >>  Hi There,<br>
              >><br>
              >> Sorry I ask this dumb question but the
              unchronization,<br>
              >> to get it right, when writing v2.0-2.4, works
              like this:<br>
              >><br>
              >> 1) Write frame data<br>
              >> 2) Insert unsynchronization zeros into frame data<br>
              >> 3) Take new frame data length and put into frame
              header<br>
              >><br>
              >> So the frame header contains the size of frame
              content<br>
              >> after inserted zeros, right?<br>
              >><br>
              >> Thanks for any answer and best wishes,<br>
              >><br>
              >> matthias mayrock<br>
              >><br>
              >><br>
              >><br>
              >>
              ---------------------------------------------------------------------<br>
              >> To unsubscribe, e-mail: <a
                moz-do-not-send="true"
                ymailto="mailto:id3v2-unsubscribe@id3.org"
                href="mailto:id3v2-unsubscribe@id3.org">id3v2-unsubscribe@id3.org</a><br>
              >> For additional commands, e-mail: <a
                moz-do-not-send="true"
                ymailto="mailto:id3v2-help@id3.org"
                href="mailto:id3v2-help@id3.org">id3v2-help@id3.org</a><br>
              >><br>
              >><br>
              ><br>
              ><br>
              >
              ---------------------------------------------------------------------<br>
              > To unsubscribe, e-mail: <a moz-do-not-send="true"
                ymailto="mailto:id3v2-unsubscribe@id3.org"
                href="mailto:id3v2-unsubscribe@id3.org">id3v2-unsubscribe@id3.org</a><br>
              > For additional commands, e-mail: <a
                moz-do-not-send="true"
                ymailto="mailto:id3v2-help@id3.org"
                href="mailto:id3v2-help@id3.org">id3v2-help@id3.org</a><br>
              ><br>
              <br>
              <br>
---------------------------------------------------------------------<br>
              To unsubscribe, e-mail: <a moz-do-not-send="true"
                ymailto="mailto:id3v2-unsubscribe@id3.org"
                href="mailto:id3v2-unsubscribe@id3.org">id3v2-unsubscribe@id3.org</a><br>
              For additional commands, e-mail: <a
                moz-do-not-send="true"
                ymailto="mailto:id3v2-help@id3.org"
                href="mailto:id3v2-help@id3.org">id3v2-help@id3.org</a><br>
              <br>
            </tt></div>
        </div>
      </div>
      <tt><br>
      </tt></blockquote>
    <tt><br>
    </tt>
  </body>
</html>