New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 751926 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocking:
issue 660942



Sign in to add a comment

mojo_decoder_buffer_converter.cc: Check failed: !read_cb_

Project Member Reported by w...@chromium.org, Aug 3 2017

Issue description

MCVD hits this DCHECK at mojo_decoder_buffer_converter.cc:99 for large resolution videos.

Stack trace attached.

 
stack
20.1 KB View Download

Comment 1 by w...@chromium.org, Aug 3 2017

Blocking: 660942
It looks like there are two reads going on at once, which MojoDecodeBufferReader does not support.

That said, we separately also want to reduce the size of the ring buffer, and provide a way to grow it if we need more space.

Some options:
  - Do not call remote_video_decoder_->Decode() until the first block of data has been written. This serializes the calls on the client side.
  - Do not call remote_video_decoder_->Decode() until all of the data has been written. This requires that we have a way to resize (replace) the ring buffer, but also eliminates the need to have an async read/write implementation.

We probably want both; then we could grow to some maximum size and after that send data in chunks.
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a67ec70f90708b3b7f14e2b90a81e9176a5098fc

commit a67ec70f90708b3b7f14e2b90a81e9176a5098fc
Author: Dan Sanders <sandersd@chromium.org>
Date: Fri Sep 29 18:00:31 2017

[media] Support concurrent buffers in MojoDecoderBufferConverter.

This adds a queue to the write and read sides of
MojoDecoderBufferConverter, allowing for multiple concurrent buffers to
be processed.

Writes are no longer guaranteed to fail as soon as the pipe is closed,
since no write is attempted immediately. Since there is no error
reporting mechanism on the write side, the only guarantee is that
*eventually* writes will fail. Since MojoDecoderBufferConverter is not
a primary communication channel, this isn't likely to cause
complications.

Bug:  751926 
Change-Id: I11c985d8aba3acc8fba6453f5bcf22555334b5b0
Reviewed-on: https://chromium-review.googlesource.com/679735
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505420}
[modify] https://crrev.com/a67ec70f90708b3b7f14e2b90a81e9176a5098fc/media/mojo/clients/mojo_decryptor_unittest.cc
[modify] https://crrev.com/a67ec70f90708b3b7f14e2b90a81e9176a5098fc/media/mojo/common/mojo_decoder_buffer_converter.cc
[modify] https://crrev.com/a67ec70f90708b3b7f14e2b90a81e9176a5098fc/media/mojo/common/mojo_decoder_buffer_converter.h
[modify] https://crrev.com/a67ec70f90708b3b7f14e2b90a81e9176a5098fc/media/mojo/common/mojo_decoder_buffer_converter_unittest.cc
[modify] https://crrev.com/a67ec70f90708b3b7f14e2b90a81e9176a5098fc/mojo/public/cpp/system/simple_watcher.h

Status: Fixed (was: Assigned)

Sign in to add a comment