Chromium Code Reviews| Index: media/base/android/sdk_media_codec_bridge.cc |
| diff --git a/media/base/android/sdk_media_codec_bridge.cc b/media/base/android/sdk_media_codec_bridge.cc |
| index bde695598a358688b488fb831439b3f6b9cf7b00..5b1675737b76d80329d502ee81b06ffed81382b5 100644 |
| --- a/media/base/android/sdk_media_codec_bridge.cc |
| +++ b/media/base/android/sdk_media_codec_bridge.cc |
| @@ -345,6 +345,23 @@ AudioCodecBridge::AudioCodecBridge(const std::string& mime) |
| // audio encoding yet. |
| : SdkMediaCodecBridge(mime, false, MEDIA_CODEC_DECODER) {} |
| +bool AudioCodecBridge::ConfigureAndStart(const AudioDecoderConfig& config, |
| + bool play_audio, |
| + jobject media_crypto) { |
| + const int channel_count = |
| + ChannelLayoutToChannelCount(config.channel_layout()); |
| + const int64_t codec_delay_ns = base::Time::kNanosecondsPerSecond * |
| + config.codec_delay() / |
| + config.samples_per_second(); |
| + const int64_t seek_preroll_ns = |
| + 1000LL * config.seek_preroll().InMicroseconds(); |
| + |
| + return ConfigureAndStart(config.codec(), config.samples_per_second(), |
| + channel_count, config.extra_data().data(), |
| + config.extra_data().size(), codec_delay_ns, |
| + seek_preroll_ns, play_audio, media_crypto); |
| +} |
| + |
| bool AudioCodecBridge::ConfigureAndStart(const AudioCodec& codec, |
| int sample_rate, |
| int channel_count, |
| @@ -354,7 +371,14 @@ bool AudioCodecBridge::ConfigureAndStart(const AudioCodec& codec, |
| int64_t seek_preroll_ns, |
| bool play_audio, |
| jobject media_crypto) { |
| - JNIEnv* env = AttachCurrentThread(); |
| + DVLOG(2) << __FUNCTION__ << ": " |
| + << " codec:" << GetCodecName(codec) |
| + << " samples_per_second:" << sample_rate |
| + << " channel_count:" << channel_count |
| + << " codec_delay_ns:" << codec_delay_ns |
| + << " seek_preroll_ns:" << seek_preroll_ns |
| + << " extra data size:" << extra_data_size |
| + << " play audio:" << play_audio << " media_crypto:" << media_crypto; |
|
xhwang
2016/02/12 10:15:04
nit: If you don't care about this overloaded versi
Tima Vaisburd
2016/02/13 01:31:24
I wanted to see that conversion to nanoseconds is
xhwang
2016/02/13 07:43:12
Acknowledged.
|
| if (!media_codec()) |
| return false; |
| @@ -363,6 +387,8 @@ bool AudioCodecBridge::ConfigureAndStart(const AudioCodec& codec, |
| if (codec_string.empty()) |
| return false; |
| + JNIEnv* env = AttachCurrentThread(); |
| + |
| ScopedJavaLocalRef<jstring> j_mime = |
| ConvertUTF8ToJavaString(env, codec_string); |
| ScopedJavaLocalRef<jobject> j_format(Java_MediaCodecBridge_createAudioFormat( |
| @@ -477,7 +503,9 @@ bool AudioCodecBridge::ConfigureMediaFormat(jobject j_format, |
| // TODO(qinmin): pass an extra variable to this function to determine |
| // whether we need to call this. |
| - Java_MediaCodecBridge_setFrameHasADTSHeader(env, j_format); |
| + if (0) { |
| + Java_MediaCodecBridge_setFrameHasADTSHeader(env, j_format); |
| + } |
|
xhwang
2016/02/12 10:15:04
Is this for local test only?
Tima Vaisburd
2016/02/13 01:31:24
Oops! Reverted.
|
| break; |
| } |
| case kCodecOpus: { |