]> granicus.if.org Git - taglib/commitdiff
Skip both ID3v1 and APE tags when seeking the last MPEG frame.
authorTsuda Kageyu <tsuda.kageyu@gmail.com>
Thu, 12 Nov 2015 04:52:46 +0000 (13:52 +0900)
committerTsuda Kageyu <tsuda.kageyu@gmail.com>
Thu, 12 Nov 2015 04:52:46 +0000 (13:52 +0900)
taglib/mpeg/mpegfile.cpp

index 43075cfc091528eebde9ee374ef015ba987ced28..9ae1dffaba4574697cb7d0425530436ebecbdb06 100644 (file)
@@ -469,7 +469,16 @@ long MPEG::File::firstFrameOffset()
 
 long MPEG::File::lastFrameOffset()
 {
-  return previousFrameOffset(hasID3v1Tag() ? d->ID3v1Location - 1 : length());
+  long position;
+
+  if(hasAPETag())
+    position = d->APELocation - 1;
+  else if(hasID3v1Tag())
+    position = d->ID3v1Location - 1;
+  else
+    position = length();
+
+  return previousFrameOffset(position);
 }
 
 bool MPEG::File::hasID3v1Tag() const