Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Unified Diff: media/filters/decoder_stream.h

Issue 1879353003: Attempt decoder fallback if first decode fails (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | media/filters/decoder_stream.cc » ('j') | media/filters/decoder_stream.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/decoder_stream.h
diff --git a/media/filters/decoder_stream.h b/media/filters/decoder_stream.h
index a7f084fa3f6f806caff60e210708abe6a86ec85a..37ee9bc72e6d3d6ae11420894ea3304f4b4ab457 100644
--- a/media/filters/decoder_stream.h
+++ b/media/filters/decoder_stream.h
@@ -122,6 +122,10 @@ class MEDIA_EXPORT DecoderStream {
return previous_decoder_.get();
}
+ int get_pending_buffers_size_for_testing() const {
+ return pending_buffers_.size();
+ }
+
private:
enum State {
STATE_UNINITIALIZED,
@@ -155,7 +159,10 @@ class MEDIA_EXPORT DecoderStream {
void FlushDecoder();
// Callback for Decoder::Decode().
- void OnDecodeDone(int buffer_size, bool end_of_stream, DecodeStatus status);
+ void OnDecodeDone(int sequence_token,
+ int buffer_size,
+ bool end_of_stream,
+ DecodeStatus status);
// Output callback passed to Decoder::Initialize().
void OnDecodeOutputReady(const scoped_refptr<Output>& output);
@@ -225,6 +232,10 @@ class MEDIA_EXPORT DecoderStream {
// Tracks the duration of incoming packets over time.
MovingAverage duration_tracker_;
+ // Used to reattempt decoding when decode fails right after Initialize().
+ std::deque<scoped_refptr<DecoderBuffer>> pending_buffers_;
+ int sequence_token_;
+
// NOTE: Weak pointers must be invalidated before all other member variables.
base::WeakPtrFactory<DecoderStream<StreamType> > weak_factory_;
};
« no previous file with comments | « no previous file | media/filters/decoder_stream.cc » ('j') | media/filters/decoder_stream.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698