Improve logging by including full stack trace, and add release note

This commit is contained in:
Ian Baker 2024-01-03 15:54:09 +00:00
parent 820278c564
commit f935f59eaa
2 changed files with 8 additions and 7 deletions

View File

@ -97,6 +97,9 @@
* Fix bug where `MediaMetadata` was only populated from Vorbis comments
with upper-case keys
([#876](https://github.com/androidx/media/issues/876)).
* Catch `OutOfMemoryError` when parsing very large ID3 frames, meaning
playback can continue without the tag info instead of playback failing
completely.
* DRM:
* Extend workaround for spurious ClearKey `https://default.url` license
URL to API 33+ (previously the workaround only applied on API 33

View File

@ -372,8 +372,8 @@ public final class Id3Decoder extends SimpleMetadataDecoder {
frameSize = removeUnsynchronization(id3Data, frameSize);
}
String error = "";
Id3Frame frame = null;
Throwable error = null;
try {
if (frameId0 == 'T'
&& frameId1 == 'X'
@ -431,10 +431,8 @@ public final class Id3Decoder extends SimpleMetadataDecoder {
String id = getFrameId(majorVersion, frameId0, frameId1, frameId2, frameId3);
frame = decodeBinaryFrame(id3Data, frameSize, id);
}
} catch (Exception e) {
error = ",error=" + e.getMessage();
} catch (OutOfMemoryError e) {
error = ",error=" + e.getMessage();
} catch (OutOfMemoryError | Exception e) {
error = e;
} finally {
id3Data.setPosition(nextFramePosition);
}
@ -444,8 +442,8 @@ public final class Id3Decoder extends SimpleMetadataDecoder {
"Failed to decode frame: id="
+ getFrameId(majorVersion, frameId0, frameId1, frameId2, frameId3)
+ ", frameSize="
+ frameSize
+ error);
+ frameSize,
error);
}
return frame;
}