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

Side by Side Diff: chromecast/media/cma/base/buffering_frame_provider.h

Issue 1875623002: Convert //chromecast from scoped_ptr to std::unique_ptr (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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROMECAST_MEDIA_CMA_BASE_BUFFERING_FRAME_PROVIDER_H_ 5 #ifndef CHROMECAST_MEDIA_CMA_BASE_BUFFERING_FRAME_PROVIDER_H_
6 #define CHROMECAST_MEDIA_CMA_BASE_BUFFERING_FRAME_PROVIDER_H_ 6 #define CHROMECAST_MEDIA_CMA_BASE_BUFFERING_FRAME_PROVIDER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <list> 10 #include <list>
11 #include <memory>
11 12
12 #include "base/macros.h" 13 #include "base/macros.h"
13 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/weak_ptr.h" 15 #include "base/memory/weak_ptr.h"
16 #include "base/threading/thread_checker.h" 16 #include "base/threading/thread_checker.h"
17 #include "chromecast/media/cma/base/coded_frame_provider.h" 17 #include "chromecast/media/cma/base/coded_frame_provider.h"
18 #include "media/base/audio_decoder_config.h" 18 #include "media/base/audio_decoder_config.h"
19 #include "media/base/video_decoder_config.h" 19 #include "media/base/video_decoder_config.h"
20 20
21 namespace chromecast { 21 namespace chromecast {
22 namespace media { 22 namespace media {
23 class DecoderBufferBase; 23 class DecoderBufferBase;
24 24
25 // BufferingFrameProvider - 25 // BufferingFrameProvider -
26 // Fetch some data from another CodedFrameProvider up to a certain size limit. 26 // Fetch some data from another CodedFrameProvider up to a certain size limit.
27 class BufferingFrameProvider : public CodedFrameProvider { 27 class BufferingFrameProvider : public CodedFrameProvider {
28 public: 28 public:
29 typedef base::Callback<void(const scoped_refptr<DecoderBufferBase>&, bool)> 29 typedef base::Callback<void(const scoped_refptr<DecoderBufferBase>&, bool)>
30 FrameBufferedCB; 30 FrameBufferedCB;
31 31
32 // Creates a frame provider that buffers coded frames up to the 32 // Creates a frame provider that buffers coded frames up to the
33 // |max_buffer_size| limit (given as a number of bytes). 33 // |max_buffer_size| limit (given as a number of bytes).
34 // |max_frame_size| corresponds to an upper bound of the expected frame size. 34 // |max_frame_size| corresponds to an upper bound of the expected frame size.
35 // Each time a frame is buffered, |frame_buffered_cb| is invoked with the 35 // Each time a frame is buffered, |frame_buffered_cb| is invoked with the
36 // last frame buffered. The second parameter of the callback indicates 36 // last frame buffered. The second parameter of the callback indicates
37 // whether the maximum capacity has been reached, i.e. whether the next frame 37 // whether the maximum capacity has been reached, i.e. whether the next frame
38 // size might overflow the buffer: |total_buffer_size_| + next_frame_size 38 // size might overflow the buffer: |total_buffer_size_| + next_frame_size
39 // might be greater than |max_buffer_size|. 39 // might be greater than |max_buffer_size|.
40 // Note: takes ownership of |coded_frame_provider|. 40 // Note: takes ownership of |coded_frame_provider|.
41 BufferingFrameProvider( 41 BufferingFrameProvider(
42 scoped_ptr<CodedFrameProvider> coded_frame_provider, 42 std::unique_ptr<CodedFrameProvider> coded_frame_provider,
43 size_t max_buffer_size, 43 size_t max_buffer_size,
44 size_t max_frame_size, 44 size_t max_frame_size,
45 const FrameBufferedCB& frame_buffered_cb); 45 const FrameBufferedCB& frame_buffered_cb);
46 ~BufferingFrameProvider() override; 46 ~BufferingFrameProvider() override;
47 47
48 // CodedFrameProvider implementation. 48 // CodedFrameProvider implementation.
49 void Read(const ReadCB& read_cb) override; 49 void Read(const ReadCB& read_cb) override;
50 void Flush(const base::Closure& flush_cb) override; 50 void Flush(const base::Closure& flush_cb) override;
51 51
52 private: 52 private:
(...skipping 21 matching lines...) Expand all
74 74
75 void OnNewBuffer(const scoped_refptr<DecoderBufferBase>& buffer, 75 void OnNewBuffer(const scoped_refptr<DecoderBufferBase>& buffer,
76 const ::media::AudioDecoderConfig& audio_config, 76 const ::media::AudioDecoderConfig& audio_config,
77 const ::media::VideoDecoderConfig& video_config); 77 const ::media::VideoDecoderConfig& video_config);
78 void RequestBufferIfNeeded(); 78 void RequestBufferIfNeeded();
79 void CompleteReadIfNeeded(); 79 void CompleteReadIfNeeded();
80 80
81 base::ThreadChecker thread_checker_; 81 base::ThreadChecker thread_checker_;
82 82
83 // Frame provider the buffering frame provider fetches data from. 83 // Frame provider the buffering frame provider fetches data from.
84 scoped_ptr<CodedFrameProvider> coded_frame_provider_; 84 std::unique_ptr<CodedFrameProvider> coded_frame_provider_;
85 85
86 // Indicates whether there is a pending read request on 86 // Indicates whether there is a pending read request on
87 // |coded_frame_provider_|. 87 // |coded_frame_provider_|.
88 bool is_pending_request_; 88 bool is_pending_request_;
89 89
90 // Indicates whether the end of stream has been reached. 90 // Indicates whether the end of stream has been reached.
91 bool is_eos_; 91 bool is_eos_;
92 92
93 std::list<BufferWithConfig> buffer_list_; 93 std::list<BufferWithConfig> buffer_list_;
94 94
(...skipping 16 matching lines...) Expand all
111 base::WeakPtr<BufferingFrameProvider> weak_this_; 111 base::WeakPtr<BufferingFrameProvider> weak_this_;
112 base::WeakPtrFactory<BufferingFrameProvider> weak_factory_; 112 base::WeakPtrFactory<BufferingFrameProvider> weak_factory_;
113 113
114 DISALLOW_COPY_AND_ASSIGN(BufferingFrameProvider); 114 DISALLOW_COPY_AND_ASSIGN(BufferingFrameProvider);
115 }; 115 };
116 116
117 } // namespace media 117 } // namespace media
118 } // namespace chromecast 118 } // namespace chromecast
119 119
120 #endif // CHROMECAST_MEDIA_CMA_BASE_BUFFERING_FRAME_PROVIDER_H_ 120 #endif // CHROMECAST_MEDIA_CMA_BASE_BUFFERING_FRAME_PROVIDER_H_
OLDNEW
« no previous file with comments | « chromecast/media/cma/base/buffering_controller_unittest.cc ('k') | chromecast/media/cma/base/buffering_frame_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698