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

Commit 034799db authored by Wonsik Kim's avatar Wonsik Kim Committed by Android (Google) Code Review
Browse files

Merge "MediaFrameworkTest: don't set surface if video format is unsupported"

parents 1e8fd460 16b21b86
Loading
Loading
Loading
Loading
+32 −1
Original line number Original line Diff line number Diff line
@@ -25,6 +25,9 @@ import com.android.mediaframeworktest.MediaNames;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetFileDescriptor;
import android.graphics.Bitmap;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory;
import android.media.MediaCodecList;
import android.media.MediaExtractor;
import android.media.MediaFormat;
import android.media.MediaMetadataRetriever;
import android.media.MediaMetadataRetriever;
import android.media.MediaPlayer;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.media.MediaRecorder;
@@ -805,6 +808,29 @@ public class CodecTest {
        mFailedToCompleteWithNoError = true;
        mFailedToCompleteWithNoError = true;
        String testResult;
        String testResult;


        final MediaCodecList list = new MediaCodecList(MediaCodecList.REGULAR_CODECS);
        final MediaExtractor extractor = new MediaExtractor();
        boolean hasSupportedVideo = false;

        try {
            extractor.setDataSource(filePath);

            for (int index = 0; index < extractor.getTrackCount(); ++index) {
                MediaFormat format = extractor.getTrackFormat(index);
                String mime = format.getString(MediaFormat.KEY_MIME);
                if (!mime.startsWith("video/")) {
                    continue;
                }

                if (list.findDecoderForFormat(format) != null) {
                    hasSupportedVideo = true;
                    break;
                }
            }
        } finally {
            extractor.release();
        }

        initializeMessageLooper();
        initializeMessageLooper();
        synchronized (lock) {
        synchronized (lock) {
            try {
            try {
@@ -820,7 +846,12 @@ public class CodecTest {
            mMediaPlayer.setOnInfoListener(mInfoListener);
            mMediaPlayer.setOnInfoListener(mInfoListener);
            Log.v(TAG, "playMediaSamples: sample file name " + filePath);
            Log.v(TAG, "playMediaSamples: sample file name " + filePath);
            mMediaPlayer.setDataSource(filePath);
            mMediaPlayer.setDataSource(filePath);
            if (hasSupportedVideo) {
                mMediaPlayer.setDisplay(MediaFrameworkTest.mSurfaceView.getHolder());
                mMediaPlayer.setDisplay(MediaFrameworkTest.mSurfaceView.getHolder());
            } else {
                Log.i(TAG, "Set no display due to no (supported) video track.");
                mMediaPlayer.setDisplay(null);
            }
            mMediaPlayer.prepare();
            mMediaPlayer.prepare();
            duration = mMediaPlayer.getDuration();
            duration = mMediaPlayer.getDuration();
            // start to play
            // start to play