Skip to content

Commit

Permalink
[android] Avoid using uninitialized drm system (youtube#1557)
Browse files Browse the repository at this point in the history
b/299150189
  • Loading branch information
jasonzhangxx committed Sep 27, 2023
1 parent 6994815 commit e5b95b8
Showing 1 changed file with 11 additions and 15 deletions.
26 changes: 11 additions & 15 deletions starboard/android/shared/media_decoder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -467,24 +467,20 @@ bool MediaDecoder::ProcessOneInputBuffer(
}

jint status;
if (event.type == Event::kWriteCodecConfig) {
if (!drm_system_ || (drm_system_ && drm_system_->IsReady())) {
status = media_codec_bridge_->QueueInputBuffer(dequeue_input_result.index,
kNoOffset, size, kNoPts,
BUFFER_FLAG_CODEC_CONFIG);
} else {
status = MEDIA_CODEC_NO_KEY;
}
if (drm_system_ && !drm_system_->IsReady()) {
// Drm system initialization is asynchronous. If there's a drm system, we
// should wait until it's initialized to avoid errors.
status = MEDIA_CODEC_NO_KEY;
} else if (event.type == Event::kWriteCodecConfig) {
status = media_codec_bridge_->QueueInputBuffer(dequeue_input_result.index,
kNoOffset, size, kNoPts,
BUFFER_FLAG_CODEC_CONFIG);
} else if (event.type == Event::kWriteInputBuffer) {
jlong pts_us = input_buffer->timestamp();
if (drm_system_ && input_buffer->drm_info()) {
if (drm_system_->IsReady()) {
status = media_codec_bridge_->QueueSecureInputBuffer(
dequeue_input_result.index, kNoOffset, *input_buffer->drm_info(),
pts_us);
} else {
status = MEDIA_CODEC_NO_KEY;
}
status = media_codec_bridge_->QueueSecureInputBuffer(
dequeue_input_result.index, kNoOffset, *input_buffer->drm_info(),
pts_us);
} else {
status = media_codec_bridge_->QueueInputBuffer(
dequeue_input_result.index, kNoOffset, size, pts_us, kNoBufferFlags);
Expand Down

0 comments on commit e5b95b8

Please sign in to comment.