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

Unified Diff: media/cast/sender/vp8_encoder.h

Issue 339743002: Cast: Make vp8 3-buffer mode work (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor test fix Created 6 years, 3 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 | « media/cast/sender/video_encoder_impl_unittest.cc ('k') | media/cast/sender/vp8_encoder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/sender/vp8_encoder.h
diff --git a/media/cast/sender/vp8_encoder.h b/media/cast/sender/vp8_encoder.h
index 0437dbc2f51a2307537ba828dae62bc4750140f9..abe5eebb88320b9cb0eb8d28acc9a6df768fa962 100644
--- a/media/cast/sender/vp8_encoder.h
+++ b/media/cast/sender/vp8_encoder.h
@@ -55,6 +55,16 @@ class Vp8Encoder : public SoftwareVideoEncoder {
kNoBuffer = 3 // Note: must be last.
};
+ enum Vp8BufferState {
+ kBufferStartState,
+ kBufferSent,
+ kBufferAcked
+ };
+ struct BufferState {
+ uint32 frame_id;
+ Vp8BufferState state;
+ };
+
void InitEncode(int number_of_cores);
// Calculate the max target in % for a keyframe.
@@ -63,11 +73,9 @@ class Vp8Encoder : public SoftwareVideoEncoder {
// Calculate which next Vp8 buffers to update with the next frame.
Vp8Buffers GetNextBufferToUpdate();
- // Calculate which previous frame to reference.
- uint32 GetLatestFrameIdToReference();
-
// Get encoder flags for our referenced encoder buffers.
- void GetCodecReferenceFlags(vpx_codec_flags_t* flags);
+ // Return which previous frame to reference.
+ uint32 GetCodecReferenceFlags(vpx_codec_flags_t* flags);
// Get encoder flags for our encoder buffers to update with next frame.
void GetCodecUpdateFlags(Vp8Buffers buffer_to_update,
@@ -75,7 +83,6 @@ class Vp8Encoder : public SoftwareVideoEncoder {
const VideoSenderConfig cast_config_;
const bool use_multiple_video_buffers_;
- const int max_number_of_repeated_buffers_in_a_row_;
// VP8 internal objects.
scoped_ptr<vpx_codec_enc_cfg_t> config_;
@@ -86,10 +93,10 @@ class Vp8Encoder : public SoftwareVideoEncoder {
bool first_frame_received_;
base::TimeDelta first_frame_timestamp_;
uint32 last_encoded_frame_id_;
- uint32 used_buffers_frame_id_[kNumberOfVp8VideoBuffers];
- bool acked_frame_buffers_[kNumberOfVp8VideoBuffers];
- Vp8Buffers last_used_vp8_buffer_;
- int number_of_repeated_buffers_;
+ uint32 last_acked_frame_id_;
+ uint32 frame_id_to_reference_;
+ uint32 undroppable_frames_;
+ BufferState buffer_state_[kNumberOfVp8VideoBuffers];
// This is bound to the thread where Initialize() is called.
base::ThreadChecker thread_checker_;
« no previous file with comments | « media/cast/sender/video_encoder_impl_unittest.cc ('k') | media/cast/sender/vp8_encoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698