OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2017 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2017 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
535 } | 535 } |
536 } | 536 } |
537 | 537 |
538 /** | 538 /** |
539 * Enumeration of supported color formats used for MediaCodec's input. | 539 * Enumeration of supported color formats used for MediaCodec's input. |
540 */ | 540 */ |
541 private static enum ColorFormat { | 541 private static enum ColorFormat { |
542 I420 { | 542 I420 { |
543 @Override | 543 @Override |
544 void fillBufferFromI420(ByteBuffer buffer, VideoFrame.I420Buffer i420) { | 544 void fillBufferFromI420(ByteBuffer buffer, VideoFrame.I420Buffer i420) { |
545 buffer.put(i420.getDataY()); | 545 buffer.put(i420.getDataY().slice()); |
sakal
2017/09/28 07:43:53
Hmm, I think it is better to fix this at the Video
mellem
2017/09/28 17:02:39
Yes, I like that idea even better. I'll just aban
| |
546 buffer.put(i420.getDataU()); | 546 buffer.put(i420.getDataU().slice()); |
547 buffer.put(i420.getDataV()); | 547 buffer.put(i420.getDataV().slice()); |
548 } | 548 } |
549 }, | 549 }, |
550 NV12 { | 550 NV12 { |
551 @Override | 551 @Override |
552 void fillBufferFromI420(ByteBuffer buffer, VideoFrame.I420Buffer i420) { | 552 void fillBufferFromI420(ByteBuffer buffer, VideoFrame.I420Buffer i420) { |
553 buffer.put(i420.getDataY()); | 553 buffer.put(i420.getDataY().slice()); |
554 | 554 |
555 // Interleave the bytes from the U and V portions, starting with U. | 555 // Interleave the bytes from the U and V portions, starting with U. |
556 ByteBuffer u = i420.getDataU(); | 556 ByteBuffer u = i420.getDataU().slice(); |
557 ByteBuffer v = i420.getDataV(); | 557 ByteBuffer v = i420.getDataV().slice(); |
558 int i = 0; | 558 int i = 0; |
559 while (u.hasRemaining() && v.hasRemaining()) { | 559 while (u.hasRemaining() && v.hasRemaining()) { |
560 buffer.put(u.get()); | 560 buffer.put(u.get()); |
561 buffer.put(v.get()); | 561 buffer.put(v.get()); |
562 } | 562 } |
563 } | 563 } |
564 }; | 564 }; |
565 | 565 |
566 abstract void fillBufferFromI420(ByteBuffer buffer, VideoFrame.I420Buffer i4 20); | 566 abstract void fillBufferFromI420(ByteBuffer buffer, VideoFrame.I420Buffer i4 20); |
567 | 567 |
568 static ColorFormat valueOf(int colorFormat) { | 568 static ColorFormat valueOf(int colorFormat) { |
569 switch (colorFormat) { | 569 switch (colorFormat) { |
570 case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar: | 570 case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar: |
571 return I420; | 571 return I420; |
572 case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar: | 572 case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar: |
573 case MediaCodecInfo.CodecCapabilities.COLOR_QCOM_FormatYUV420SemiPlanar: | 573 case MediaCodecInfo.CodecCapabilities.COLOR_QCOM_FormatYUV420SemiPlanar: |
574 case MediaCodecUtils.COLOR_QCOM_FORMATYUV420PackedSemiPlanar32m: | 574 case MediaCodecUtils.COLOR_QCOM_FORMATYUV420PackedSemiPlanar32m: |
575 return NV12; | 575 return NV12; |
576 default: | 576 default: |
577 throw new IllegalArgumentException("Unsupported colorFormat: " + color Format); | 577 throw new IllegalArgumentException("Unsupported colorFormat: " + color Format); |
578 } | 578 } |
579 } | 579 } |
580 } | 580 } |
581 } | 581 } |
OLD | NEW |