OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2015 Google Inc. | 3 * Copyright 2015 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 int64_t /* rtt */) override; | 96 int64_t /* rtt */) override; |
97 int32_t SetRates(uint32_t new_bit_rate, uint32_t frame_rate) override; | 97 int32_t SetRates(uint32_t new_bit_rate, uint32_t frame_rate) override; |
98 | 98 |
99 // rtc::MessageHandler implementation. | 99 // rtc::MessageHandler implementation. |
100 void OnMessage(rtc::Message* msg) override; | 100 void OnMessage(rtc::Message* msg) override; |
101 | 101 |
102 void OnDroppedFrame() override; | 102 void OnDroppedFrame() override; |
103 | 103 |
104 int GetTargetFramerate() override; | 104 int GetTargetFramerate() override; |
105 | 105 |
| 106 const char* ImplementationName() const override; |
| 107 |
106 private: | 108 private: |
107 // CHECK-fail if not running on |codec_thread_|. | 109 // CHECK-fail if not running on |codec_thread_|. |
108 void CheckOnCodecThread(); | 110 void CheckOnCodecThread(); |
109 | 111 |
110 // Release() and InitEncode() in an attempt to restore the codec to an | 112 // Release() and InitEncode() in an attempt to restore the codec to an |
111 // operable state. Necessary after all manner of OMX-layer errors. | 113 // operable state. Necessary after all manner of OMX-layer errors. |
112 void ResetCodec(); | 114 void ResetCodec(); |
113 | 115 |
114 // Implementation of webrtc::VideoEncoder methods above, all running on the | 116 // Implementation of webrtc::VideoEncoder methods above, all running on the |
115 // codec thread exclusively. | 117 // codec thread exclusively. |
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 | 899 |
898 void MediaCodecVideoEncoder::OnDroppedFrame() { | 900 void MediaCodecVideoEncoder::OnDroppedFrame() { |
899 if (scale_) | 901 if (scale_) |
900 quality_scaler_.ReportDroppedFrame(); | 902 quality_scaler_.ReportDroppedFrame(); |
901 } | 903 } |
902 | 904 |
903 int MediaCodecVideoEncoder::GetTargetFramerate() { | 905 int MediaCodecVideoEncoder::GetTargetFramerate() { |
904 return scale_ ? quality_scaler_.GetTargetFramerate() : -1; | 906 return scale_ ? quality_scaler_.GetTargetFramerate() : -1; |
905 } | 907 } |
906 | 908 |
| 909 const char* MediaCodecVideoEncoder::ImplementationName() const { |
| 910 return "MediaCodec"; |
| 911 } |
| 912 |
907 MediaCodecVideoEncoderFactory::MediaCodecVideoEncoderFactory() { | 913 MediaCodecVideoEncoderFactory::MediaCodecVideoEncoderFactory() { |
908 JNIEnv* jni = AttachCurrentThreadIfNeeded(); | 914 JNIEnv* jni = AttachCurrentThreadIfNeeded(); |
909 ScopedLocalRefFrame local_ref_frame(jni); | 915 ScopedLocalRefFrame local_ref_frame(jni); |
910 jclass j_encoder_class = FindClass(jni, "org/webrtc/MediaCodecVideoEncoder"); | 916 jclass j_encoder_class = FindClass(jni, "org/webrtc/MediaCodecVideoEncoder"); |
911 supported_codecs_.clear(); | 917 supported_codecs_.clear(); |
912 | 918 |
913 bool is_vp8_hw_supported = jni->CallStaticBooleanMethod( | 919 bool is_vp8_hw_supported = jni->CallStaticBooleanMethod( |
914 j_encoder_class, | 920 j_encoder_class, |
915 GetStaticMethodID(jni, j_encoder_class, "isVp8HwSupported", "()Z")); | 921 GetStaticMethodID(jni, j_encoder_class, "isVp8HwSupported", "()Z")); |
916 CHECK_EXCEPTION(jni); | 922 CHECK_EXCEPTION(jni); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
955 } | 961 } |
956 | 962 |
957 void MediaCodecVideoEncoderFactory::DestroyVideoEncoder( | 963 void MediaCodecVideoEncoderFactory::DestroyVideoEncoder( |
958 webrtc::VideoEncoder* encoder) { | 964 webrtc::VideoEncoder* encoder) { |
959 ALOGD << "Destroy video encoder."; | 965 ALOGD << "Destroy video encoder."; |
960 delete encoder; | 966 delete encoder; |
961 } | 967 } |
962 | 968 |
963 } // namespace webrtc_jni | 969 } // namespace webrtc_jni |
964 | 970 |
OLD | NEW |