| OLD | NEW | 
|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_H_ | 5 #ifndef CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_H_ | 
| 6 #define CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_H_ | 6 #define CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_H_ | 
| 7 | 7 | 
| 8 #include <deque> | 8 #include <deque> | 
| 9 #include <list> | 9 #include <list> | 
| 10 #include <map> | 10 #include <map> | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 49 | 49 | 
| 50   // Creates a RTCVideoDecoder. Returns NULL if failed. The video decoder will | 50   // Creates a RTCVideoDecoder. Returns NULL if failed. The video decoder will | 
| 51   // run on the message loop of |factories|. | 51   // run on the message loop of |factories|. | 
| 52   static scoped_ptr<RTCVideoDecoder> Create( | 52   static scoped_ptr<RTCVideoDecoder> Create( | 
| 53       webrtc::VideoCodecType type, | 53       webrtc::VideoCodecType type, | 
| 54       const scoped_refptr<media::GpuVideoAcceleratorFactories>& factories); | 54       const scoped_refptr<media::GpuVideoAcceleratorFactories>& factories); | 
| 55 | 55 | 
| 56   // webrtc::VideoDecoder implementation. | 56   // webrtc::VideoDecoder implementation. | 
| 57   // Called on WebRTC DecodingThread. | 57   // Called on WebRTC DecodingThread. | 
| 58   virtual int32_t InitDecode(const webrtc::VideoCodec* codecSettings, | 58   virtual int32_t InitDecode(const webrtc::VideoCodec* codecSettings, | 
| 59                              int32_t numberOfCores) OVERRIDE; | 59                              int32_t numberOfCores) override; | 
| 60   // Called on WebRTC DecodingThread. | 60   // Called on WebRTC DecodingThread. | 
| 61   virtual int32_t Decode( | 61   virtual int32_t Decode( | 
| 62       const webrtc::EncodedImage& inputImage, | 62       const webrtc::EncodedImage& inputImage, | 
| 63       bool missingFrames, | 63       bool missingFrames, | 
| 64       const webrtc::RTPFragmentationHeader* fragmentation, | 64       const webrtc::RTPFragmentationHeader* fragmentation, | 
| 65       const webrtc::CodecSpecificInfo* codecSpecificInfo = NULL, | 65       const webrtc::CodecSpecificInfo* codecSpecificInfo = NULL, | 
| 66       int64_t renderTimeMs = -1) OVERRIDE; | 66       int64_t renderTimeMs = -1) override; | 
| 67   // Called on WebRTC DecodingThread. | 67   // Called on WebRTC DecodingThread. | 
| 68   virtual int32_t RegisterDecodeCompleteCallback( | 68   virtual int32_t RegisterDecodeCompleteCallback( | 
| 69       webrtc::DecodedImageCallback* callback) OVERRIDE; | 69       webrtc::DecodedImageCallback* callback) override; | 
| 70   // Called on Chrome_libJingle_WorkerThread. The child thread is blocked while | 70   // Called on Chrome_libJingle_WorkerThread. The child thread is blocked while | 
| 71   // this runs. | 71   // this runs. | 
| 72   virtual int32_t Release() OVERRIDE; | 72   virtual int32_t Release() override; | 
| 73   // Called on Chrome_libJingle_WorkerThread. The child thread is blocked while | 73   // Called on Chrome_libJingle_WorkerThread. The child thread is blocked while | 
| 74   // this runs. | 74   // this runs. | 
| 75   virtual int32_t Reset() OVERRIDE; | 75   virtual int32_t Reset() override; | 
| 76 | 76 | 
| 77   // VideoDecodeAccelerator::Client implementation. | 77   // VideoDecodeAccelerator::Client implementation. | 
| 78   virtual void ProvidePictureBuffers(uint32 count, | 78   virtual void ProvidePictureBuffers(uint32 count, | 
| 79                                      const gfx::Size& size, | 79                                      const gfx::Size& size, | 
| 80                                      uint32 texture_target) OVERRIDE; | 80                                      uint32 texture_target) override; | 
| 81   virtual void DismissPictureBuffer(int32 id) OVERRIDE; | 81   virtual void DismissPictureBuffer(int32 id) override; | 
| 82   virtual void PictureReady(const media::Picture& picture) OVERRIDE; | 82   virtual void PictureReady(const media::Picture& picture) override; | 
| 83   virtual void NotifyEndOfBitstreamBuffer(int32 id) OVERRIDE; | 83   virtual void NotifyEndOfBitstreamBuffer(int32 id) override; | 
| 84   virtual void NotifyFlushDone() OVERRIDE; | 84   virtual void NotifyFlushDone() override; | 
| 85   virtual void NotifyResetDone() OVERRIDE; | 85   virtual void NotifyResetDone() override; | 
| 86   virtual void NotifyError(media::VideoDecodeAccelerator::Error error) OVERRIDE; | 86   virtual void NotifyError(media::VideoDecodeAccelerator::Error error) override; | 
| 87 | 87 | 
| 88  private: | 88  private: | 
| 89   class SHMBuffer; | 89   class SHMBuffer; | 
| 90   // Metadata of a bitstream buffer. | 90   // Metadata of a bitstream buffer. | 
| 91   struct BufferData { | 91   struct BufferData { | 
| 92     BufferData(int32 bitstream_buffer_id, | 92     BufferData(int32 bitstream_buffer_id, | 
| 93                uint32_t timestamp, | 93                uint32_t timestamp, | 
| 94                size_t size); | 94                size_t size); | 
| 95     BufferData(); | 95     BufferData(); | 
| 96     ~BufferData(); | 96     ~BufferData(); | 
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 261   // Must be destroyed, or invalidated, on |vda_loop_proxy_| | 261   // Must be destroyed, or invalidated, on |vda_loop_proxy_| | 
| 262   // NOTE: Weak pointers must be invalidated before all other member variables. | 262   // NOTE: Weak pointers must be invalidated before all other member variables. | 
| 263   base::WeakPtrFactory<RTCVideoDecoder> weak_factory_; | 263   base::WeakPtrFactory<RTCVideoDecoder> weak_factory_; | 
| 264 | 264 | 
| 265   DISALLOW_COPY_AND_ASSIGN(RTCVideoDecoder); | 265   DISALLOW_COPY_AND_ASSIGN(RTCVideoDecoder); | 
| 266 }; | 266 }; | 
| 267 | 267 | 
| 268 }  // namespace content | 268 }  // namespace content | 
| 269 | 269 | 
| 270 #endif  // CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_H_ | 270 #endif  // CONTENT_RENDERER_MEDIA_RTC_VIDEO_DECODER_H_ | 
| OLD | NEW | 
|---|