| Index: media/filters/decoder_stream.cc
|
| diff --git a/media/filters/decoder_stream.cc b/media/filters/decoder_stream.cc
|
| index 350e47f72cd3887c2fd01ee9d878774791254745..c4adc632ba89a897cbc222bae14e3737ff3f93df 100644
|
| --- a/media/filters/decoder_stream.cc
|
| +++ b/media/filters/decoder_stream.cc
|
| @@ -50,6 +50,7 @@ DecoderStream<StreamType>::DecoderStream(
|
| new DecoderSelector<StreamType>(task_runner,
|
| decoders.Pass(),
|
| set_decryptor_ready_cb)),
|
| + active_splice_(false),
|
| weak_factory_(this) {}
|
|
|
| template <DemuxerStream::Type StreamType>
|
| @@ -408,9 +409,12 @@ void DecoderStream<StreamType>::OnBufferReady(
|
| return;
|
| }
|
|
|
| - if (!splice_observer_cb_.is_null() && !buffer->end_of_stream() &&
|
| - buffer->splice_timestamp() != kNoTimestamp()) {
|
| - splice_observer_cb_.Run(buffer->splice_timestamp());
|
| + if (!splice_observer_cb_.is_null() && !buffer->end_of_stream()) {
|
| + const bool has_splice_ts = buffer->splice_timestamp() != kNoTimestamp();
|
| + if (active_splice_ || has_splice_ts) {
|
| + splice_observer_cb_.Run(buffer->splice_timestamp());
|
| + active_splice_ = has_splice_ts;
|
| + }
|
| }
|
|
|
| DCHECK(status == DemuxerStream::kOk) << status;
|
|
|