diff options
author | Scott Lobdell <slobdell@google.com> | 2021-08-04 03:02:11 +0000 |
---|---|---|
committer | Scott Lobdell <slobdell@google.com> | 2021-08-06 17:25:21 +0000 |
commit | 9d10272031d3f400d399db45927abf3be739b074 (patch) | |
tree | b9a3f179cf0abb8f6986f4c2268a617a34d663c8 /media | |
parent | 22fd7d8dfaf39ca6b15bd360409f3fa580adf2f6 (diff) | |
parent | b3abfad71a54152026b023b831ddd1793f361fa8 (diff) |
Merge SP1A.210803.001
Change-Id: I09253f8614e9ee85a59460f3ef25f17dd98cac80
Diffstat (limited to 'media')
6 files changed, 32 insertions, 16 deletions
diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java index d746c850a018..37054b8383b1 100644 --- a/media/java/android/media/ExifInterface.java +++ b/media/java/android/media/ExifInterface.java @@ -1573,6 +1573,9 @@ public class ExifInterface { if (isFdDuped) { closeFileDescriptor(fileDescriptor); } + if (modernFd != null) { + modernFd.close(); + } } } @@ -2554,12 +2557,13 @@ public class ExifInterface { private void initForFilename(String filename) throws IOException { FileInputStream in = null; + ParcelFileDescriptor modernFd = null; mAssetInputStream = null; mFilename = filename; mIsInputStream = false; try { in = new FileInputStream(filename); - ParcelFileDescriptor modernFd = FileUtils.convertToModernFd(in.getFD()); + modernFd = FileUtils.convertToModernFd(in.getFD()); if (modernFd != null) { closeQuietly(in); in = new FileInputStream(modernFd.getFileDescriptor()); @@ -2570,6 +2574,9 @@ public class ExifInterface { loadAttributes(in); } finally { closeQuietly(in); + if (modernFd != null) { + modernFd.close(); + } } } diff --git a/media/java/android/media/MediaMetadataRetriever.java b/media/java/android/media/MediaMetadataRetriever.java index 2943eee5b1da..a15529e99d15 100644 --- a/media/java/android/media/MediaMetadataRetriever.java +++ b/media/java/android/media/MediaMetadataRetriever.java @@ -36,6 +36,7 @@ import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.SystemProperties; import android.text.TextUtils; +import android.util.Log; import java.io.FileDescriptor; import java.io.FileInputStream; @@ -52,6 +53,8 @@ import java.util.Map; * frame and meta data from an input media file. */ public class MediaMetadataRetriever implements AutoCloseable { + private static final String TAG = "MediaMetadataRetriever"; + // borrowed from ExoPlayer private static final String[] STANDARD_GENRES = new String[] { // These are the official ID3v1 genres. @@ -301,11 +304,15 @@ public class MediaMetadataRetriever implements AutoCloseable { */ public void setDataSource(FileDescriptor fd, long offset, long length) throws IllegalArgumentException { - ParcelFileDescriptor modernFd = FileUtils.convertToModernFd(fd); - if (modernFd == null) { - _setDataSource(fd, offset, length); - } else { - _setDataSource(modernFd.getFileDescriptor(), offset, length); + + try (ParcelFileDescriptor modernFd = FileUtils.convertToModernFd(fd)) { + if (modernFd == null) { + _setDataSource(fd, offset, length); + } else { + _setDataSource(modernFd.getFileDescriptor(), offset, length); + } + } catch (IOException e) { + Log.w(TAG, "Ignoring IO error while setting data source", e); } } diff --git a/media/java/android/media/MediaPlayer.java b/media/java/android/media/MediaPlayer.java index 4f761ba0bf6a..26eb2a9dc109 100644 --- a/media/java/android/media/MediaPlayer.java +++ b/media/java/android/media/MediaPlayer.java @@ -1271,11 +1271,14 @@ public class MediaPlayer extends PlayerBase */ public void setDataSource(FileDescriptor fd, long offset, long length) throws IOException, IllegalArgumentException, IllegalStateException { - ParcelFileDescriptor modernFd = FileUtils.convertToModernFd(fd); - if (modernFd == null) { - _setDataSource(fd, offset, length); - } else { - _setDataSource(modernFd.getFileDescriptor(), offset, length); + try (ParcelFileDescriptor modernFd = FileUtils.convertToModernFd(fd)) { + if (modernFd == null) { + _setDataSource(fd, offset, length); + } else { + _setDataSource(modernFd.getFileDescriptor(), offset, length); + } + } catch (IOException e) { + Log.w(TAG, "Ignoring IO error while setting data source", e); } } diff --git a/media/java/android/media/MediaRouter2Manager.java b/media/java/android/media/MediaRouter2Manager.java index 628f7eef84f9..7f7fb6023b07 100644 --- a/media/java/android/media/MediaRouter2Manager.java +++ b/media/java/android/media/MediaRouter2Manager.java @@ -292,8 +292,7 @@ public final class MediaRouter2Manager { } synchronized (mRoutesLock) { for (MediaRoute2Info route : mRoutes.values()) { - if (sessionInfo.getSelectedRoutes().contains(route.getId()) - || sessionInfo.getTransferableRoutes().contains(route.getId())) { + if (sessionInfo.getTransferableRoutes().contains(route.getId())) { routes.add(route); continue; } diff --git a/media/java/android/media/metrics/PlaybackErrorEvent.java b/media/java/android/media/metrics/PlaybackErrorEvent.java index 184b35913783..4e3b426c0630 100644 --- a/media/java/android/media/metrics/PlaybackErrorEvent.java +++ b/media/java/android/media/metrics/PlaybackErrorEvent.java @@ -317,7 +317,7 @@ public final class PlaybackErrorEvent extends Event implements Parcelable { */ public static final class Builder { private @Nullable Exception mException; - private int mErrorCode; + private int mErrorCode = ERROR_UNKNOWN; private int mSubErrorCode; private long mTimeSinceCreatedMillis = -1; private Bundle mMetricsBundle = new Bundle(); diff --git a/media/java/android/media/metrics/PlaybackMetrics.java b/media/java/android/media/metrics/PlaybackMetrics.java index bbcc48480e68..e71ee204f564 100644 --- a/media/java/android/media/metrics/PlaybackMetrics.java +++ b/media/java/android/media/metrics/PlaybackMetrics.java @@ -502,9 +502,9 @@ public final class PlaybackMetrics implements Parcelable { private long mMediaDurationMillis = -1; private int mStreamSource = STREAM_SOURCE_UNKNOWN; private int mStreamType = STREAM_TYPE_UNKNOWN; - private int mPlaybackType = PLAYBACK_TYPE_OTHER; + private int mPlaybackType = PLAYBACK_TYPE_UNKNOWN; private int mDrmType = DRM_TYPE_NONE; - private int mContentType = CONTENT_TYPE_OTHER; + private int mContentType = CONTENT_TYPE_UNKNOWN; private @Nullable String mPlayerName; private @Nullable String mPlayerVersion; private @NonNull List<Long> mExperimentIds = new ArrayList<>(); |