Home | History | Annotate | Download | only in cts

Lines Matching refs:MediaCodec

22 import android.media.MediaCodec;
23 import android.media.MediaCodec.BufferInfo;
24 import android.media.MediaCodec.CodecException;
25 import android.media.MediaCodec.CryptoInfo;
26 import android.media.MediaCodec.CryptoInfo.Pattern;
60 * General MediaCodec tests.
105 * <br> Exceptions for MediaCodec factory methods
106 * <br> Exceptions for MediaCodec methods when called in the incorrect state.
108 * A selective test to ensure proper exceptions are thrown from MediaCodec
137 // wrap MediaCodec encoder and decoder creation
138 private static MediaCodec createCodecByType(String type, boolean isEncoder)
141 return MediaCodec.createEncoderByType(type);
143 return MediaCodec.createDecoderByType(type);
146 private static void logMediaCodecException(MediaCodec.CodecException ex) {
168 MediaCodec codec;
183 codec = MediaCodec.createByCodecName("foobarplan9"); // invalid name
194 } catch (MediaCodec.CodecException e) {
196 fail("start should not return MediaCodec.CodecException on wrong state");
202 } catch (MediaCodec.CodecException e) {
204 fail("flush should not return MediaCodec.CodecException on wrong state");
212 } catch (MediaCodec.CodecException e) {
214 fail("dequeueInputBuffer should not return MediaCodec.CodecException"
219 MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
223 } catch (MediaCodec.CodecException e) {
225 fail("dequeueOutputBuffer should not return MediaCodec.CodecException"
235 isEncoder ? 0 : MediaCodec.CONFIGURE_FLAG_ENCODE /* flags */);
236 fail("configure needs MediaCodec.CONFIGURE_FLAG_ENCODE for encoders only");
237 } catch (MediaCodec.CodecException e) { // expected
244 isEncoder ? MediaCodec.CONFIGURE_FLAG_ENCODE : 0 /* flags */);
250 } catch (MediaCodec.CodecException e) {
252 fail("flush should not return MediaCodec.CodecException on wrong state");
294 } catch (MediaCodec.CodecException e) {
297 fail("configure should not return MediaCodec.CodecException on wrong state");
319 } catch (MediaCodec.CodecException e) {
321 fail("getCodecInfo should not return MediaCodec.CodecException on wrong state");
327 } catch (MediaCodec.CodecException e) {
329 fail("stop should not return MediaCodec.CodecException on wrong state");
348 MediaCodec encoder = null;
358 encoder = MediaCodec.createByCodecName(codecInfo.getName());
368 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
398 MediaCodec encoder = null;
403 encoder = MediaCodec.createEncoderByType(MIME_TYPE);
407 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
464 MediaCodec encoder = null;
469 encoder = MediaCodec.createEncoderByType(MIME_TYPE);
473 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
519 MediaCodec encoder = MediaCodec.createEncoderByType(mime);
523 encoder = MediaCodec.createEncoderByType(mime);
542 encoder = MediaCodec.createEncoderByType(mime);
551 encoder = MediaCodec.createEncoderByType(mime);
602 final MediaCodec mediaCodec = MediaCodec.createDecoderByType(mimeType);
605 mediaCodec.configure(mediaFormat, surface, null /* crypto */, 0 /* flags */);
607 mediaCodec.start();
609 assertTrue(runDecodeTillFirstOutput(mediaCodec, mediaExtractor));
616 mediaCodec.stop();
618 mediaCodec.flush();
630 mediaCodec.reset();
650 if (mediaCodec != null) {
651 mediaCodec.release();
663 final MediaCodec mEncoder;
667 FlushThread(MediaCodec encoder, CountDownLatch buffersExhausted,
687 private static class ReleaseAfterFlushCallback extends MediaCodec.Callback implements Runnable {
689 final MediaCodec mEncoder;
698 MediaCodec encoder,
710 public void onInputBufferAvailable(MediaCodec codec, int index) {
718 public void onOutputBufferAvailable(MediaCodec codec, int index, BufferInfo info) {
727 public void onError(MediaCodec codec, CodecException e) {
733 public void onOutputFormatChanged(MediaCodec codec, MediaFormat format) {
767 MediaCodec encoder,
784 private static InputSurface initCodecAndSurface(String mime, MediaCodec encoder) {
791 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
801 encoder.configure(format, outputSurface.getSurface(), null, MediaCodec.CONFIGURE_FLAG_ENCODE);
811 private static void cleanupCodecAndSurface(MediaCodec encoder, InputSurface inputSurface) {
822 private static List<Integer> getOutputBufferIndices(MediaCodec encoder, InputSurface inputSurface) {
824 MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo();
846 private static void feedEncoder(MediaCodec encoder, InputSurface inputSurface, int inputIndex) {
866 MediaCodec encoder,
887 fail("MediaCodec releaseOutputBuffer after flush() does not throw exception");
888 } catch (MediaCodec.CodecException e) {
905 MediaCodec encoder = null;
910 encoder = MediaCodec.createEncoderByType(MIME_TYPE);
914 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
931 int encoding = metrics.getInt(MediaCodec.MetricsConstants.ENCODER, -1);
935 String theCodec = metrics.getString(MediaCodec.MetricsConstants.CODEC, null);
963 MediaCodec encoder = null;
968 encoder = MediaCodec.createEncoderByType(MIME_TYPE);
972 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
981 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
1001 int encoding = metrics.getInt(MediaCodec.MetricsConstants.ENCODER, -1);
1005 String theCodec = metrics.getString(MediaCodec.MetricsConstants.CODEC, null);
1033 MediaCodec mediaCodec = null;
1047 mediaCodec = MediaCodec.createDecoderByType(mimeType);
1048 mediaCodec.configure(mediaFormat, outputSurface == null ? null : outputSurface.getSurface(),
1050 mediaCodec.start();
1052 if (!runDecodeTillFirstOutput(mediaCodec, mediaExtractor)) {
1056 PersistableBundle metrics = mediaCodec.getMetrics();
1062 int encoder = metrics.getInt(MediaCodec.MetricsConstants.ENCODER, -1);
1066 String theCodec = metrics.getString(MediaCodec.MetricsConstants.CODEC, null);
1074 mediaCodec.flush();
1076 completed.set(runDecodeTillFirstOutput(mediaCodec, mediaExtractor));
1077 metrics = mediaCodec.getMetrics();
1083 int encoding = metrics.getInt(MediaCodec.MetricsConstants.ENCODER, -1);
1087 String theCodec2 = metrics.getString(MediaCodec.MetricsConstants.CODEC, null);
1095 if (mediaCodec != null) {
1096 mediaCodec.stop();
1098 PersistableBundle metrics = mediaCodec.getMetrics();
1104 int encoder = metrics.getInt(MediaCodec.MetricsConstants.ENCODER, -1);
1108 String theCodec = metrics.getString(MediaCodec.MetricsConstants.CODEC, null);
1113 mediaCodec.release();
1136 MediaCodec mediaCodec, MediaExtractor mediaExtractor) {
1142 MediaCodec.BufferInfo outputBufferInfo = new MediaCodec.BufferInfo();
1146 int bufferIndex = mediaCodec.dequeueInputBuffer(TIME_OUT_US /* timeoutUs */);
1148 ByteBuffer buffer = mediaCodec.getInputBuffer(bufferIndex);
1153 mediaCodec.queueInputBuffer(bufferIndex,
1157 signaledEos ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
1162 int outputBufferIndex = mediaCodec.dequeueOutputBuffer(
1165 if (outputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED
1166 || outputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED
1167 || outputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
1172 PersistableBundle metrics = mediaCodec.getMetrics();
1175 int encoder = metrics.getInt(MediaCodec.MetricsConstants.ENCODER, -1);
1179 String theCodec = metrics.getString(MediaCodec.MetricsConstants.CODEC, null);
1184 mediaCodec.releaseOutputBuffer(outputBufferIndex, false /* render */);
1185 boolean eos = (outputBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0;
1231 MediaCodec mediaCodec = null;
1242 mediaCodec =
1243 MediaCodec.createDecoderByType(mimeType);
1244 mediaCodec.configure(mediaFormat, outputSurface.getSurface(), null, 0);
1245 mediaCodec.start();
1248 MediaCodec.BufferInfo outputBufferInfo = new MediaCodec.BufferInfo();
1253 int bufferIndex = mediaCodec.dequeueInputBuffer(0);
1255 ByteBuffer buffer = mediaCodec.getInputBuffers()[bufferIndex];
1261 mediaCodec.queueInputBuffer(bufferIndex,
1265 signaledEos ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
1271 outputBufferIndex = mediaCodec.dequeueOutputBuffer(outputBufferInfo, 0);
1274 if (outputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED
1275 || outputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED
1276 || outputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
1279 eos = (outputBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0;
1282 mediaCodec.releaseOutputBuffer(outputBufferIndex, render);
1295 if (mediaCodec != null) {
1296 mediaCodec.stop();
1297 mediaCodec.release();
1315 MediaCodec audioDecoderA = null;
1316 MediaCodec audioDecoderB = null;
1319 audioDecoderA = MediaCodec.createDecoderByType(MIME_TYPE_AUDIO);
1327 audioDecoderB = MediaCodec.createDecoderByType(MIME_TYPE_AUDIO);
1375 MediaCodec audioEncoder = null;
1376 MediaCodec audioDecoder = null;
1379 audioEncoder = MediaCodec.createEncoderByType(MIME_TYPE_AUDIO);
1383 audioEncoder.configure(encoderFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
1387 audioDecoder = MediaCodec.createDecoderByType(MIME_TYPE_AUDIO);
1561 MediaCodec encoder = null;
1565 encoder = MediaCodec.createEncoderByType(MIME_TYPE);
1566 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
1569 MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo();
1604 MediaCodec encoder = null;
1607 encoder = MediaCodec.createEncoderByType(MIME_TYPE_AUDIO);
1608 encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
1609 MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
1770 MediaCodec codec = MediaCodec.createDecoderByType(MIME_TYPE);
1775 MediaCodec.CryptoInfo cryptoInfo = new MediaCodec.CryptoInfo();
1790 MediaCodec.CRYPTO_MODE_UNENCRYPTED);
1795 } catch (MediaCodec.CryptoException e) {
1814 private MediaCodec mCodec;
1837 mCodec = MediaCodec.createEncoderByType(mime);
1839 mCodec = MediaCodec.createDecoderByType(mime);
1841 mCodec.configure(format,null, null, encode ? MediaCodec.CONFIGURE_FLAG_ENCODE : 0);
1909 int flags = mSawInputEOS ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0;
1911 flags |= MediaCodec.BUFFER_FLAG_CODEC_CONFIG;
1935 if ((mInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
1941 if (mEncode && mBufCounter++ == 0 && (mInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) == 0) {
1945 } else if (index == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {