Issue:
ESPP readytoprepare received will trigger read data from demuxer,JS do seek at this moment however demuxer is waiting for more data arrived.
Seek cannot finished in time, JS will seek same time again, mediaplusplayer will prepare again and received readytoprepare twice time.
demuxer read is triggered again which result read_cb crash.
Solution:
If read is in progress, ignore read again.
Change-Id: Idb29bf71ca40a7bb5a2a41aa6eef3d975657fce2
Signed-off-by: xiaofang <fang.xiao@samsung.com>
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK_EQ(state_, kIdle) << state_;
DCHECK(read_cb);
- CHECK(!read_cb_) << "Overlapping reads are not supported.";
DCHECK_EQ(count, 1u) << "DecryptingDemuxerStream only reads a single-buffer.";
+ if (read_cb_) {
+ LOG(WARNING) << "Overlapping reads are not supported";
+ return;
+ }
+
read_cb_ = base::BindPostTaskToCurrentDefault(std::move(read_cb));
state_ = kPendingDemuxerRead;
demuxer_stream_->Read(