Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06073197 authored by Andreas Gampe's avatar Andreas Gampe Committed by android-build-merger
Browse files

Merge "Frameworks/base: Fix old code in MediaPlayer" am: 17b069c0 am: f664e822

am: 3bd314fe

* commit '3bd314fe':
  Frameworks/base: Fix old code in MediaPlayer

Change-Id: I6a7465ed32560d5a1a15c70308b8a746ba23fa37
parents d9af2fcd 3bd314fe
Loading
Loading
Loading
Loading
+8 −12
Original line number Original line Diff line number Diff line
@@ -2474,9 +2474,9 @@ public class MediaPlayer extends PlayerBase
            throw new IllegalArgumentException("Illegal mimeType for timed text source: " + mime);
            throw new IllegalArgumentException("Illegal mimeType for timed text source: " + mime);
        }
        }


        FileDescriptor fd2;
        final FileDescriptor dupedFd;
        try {
        try {
            fd2 = Libcore.os.dup(fd);
            dupedFd = Libcore.os.dup(fd);
        } catch (ErrnoException ex) {
        } catch (ErrnoException ex) {
            Log.e(TAG, ex.getMessage(), ex);
            Log.e(TAG, ex.getMessage(), ex);
            throw new RuntimeException(ex);
            throw new RuntimeException(ex);
@@ -2501,7 +2501,6 @@ public class MediaPlayer extends PlayerBase
            mIndexTrackPairs.add(Pair.<Integer, SubtitleTrack>create(null, track));
            mIndexTrackPairs.add(Pair.<Integer, SubtitleTrack>create(null, track));
        }
        }


        final FileDescriptor fd3 = fd2;
        final long offset2 = offset;
        final long offset2 = offset;
        final long length2 = length;
        final long length2 = length;
        final HandlerThread thread = new HandlerThread(
        final HandlerThread thread = new HandlerThread(
@@ -2511,14 +2510,13 @@ public class MediaPlayer extends PlayerBase
        Handler handler = new Handler(thread.getLooper());
        Handler handler = new Handler(thread.getLooper());
        handler.post(new Runnable() {
        handler.post(new Runnable() {
            private int addTrack() {
            private int addTrack() {
                InputStream is = null;
                final ByteArrayOutputStream bos = new ByteArrayOutputStream();
                final ByteArrayOutputStream bos = new ByteArrayOutputStream();
                try {
                try {
                    Libcore.os.lseek(fd3, offset2, OsConstants.SEEK_SET);
                    Libcore.os.lseek(dupedFd, offset2, OsConstants.SEEK_SET);
                    byte[] buffer = new byte[4096];
                    byte[] buffer = new byte[4096];
                    for (long total = 0; total < length2;) {
                    for (long total = 0; total < length2;) {
                        int bytesToRead = (int) Math.min(buffer.length, length2 - total);
                        int bytesToRead = (int) Math.min(buffer.length, length2 - total);
                        int bytes = IoBridge.read(fd3, buffer, 0, bytesToRead);
                        int bytes = IoBridge.read(dupedFd, buffer, 0, bytesToRead);
                        if (bytes < 0) {
                        if (bytes < 0) {
                            break;
                            break;
                        } else {
                        } else {
@@ -2532,15 +2530,13 @@ public class MediaPlayer extends PlayerBase
                    Log.e(TAG, e.getMessage(), e);
                    Log.e(TAG, e.getMessage(), e);
                    return MEDIA_INFO_TIMED_TEXT_ERROR;
                    return MEDIA_INFO_TIMED_TEXT_ERROR;
                } finally {
                } finally {
                    if (is != null) {
                    try {
                    try {
                            is.close();
                        Libcore.os.close(dupedFd);
                        } catch (IOException e) {
                    } catch (ErrnoException e) {
                        Log.e(TAG, e.getMessage(), e);
                        Log.e(TAG, e.getMessage(), e);
                    }
                    }
                }
                }
            }
            }
            }


            public void run() {
            public void run() {
                int res = addTrack();
                int res = addTrack();