| 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 MEDIA_BASE_ANDROID_VIDEO_DECODER_JOB_H_ | 5 #ifndef MEDIA_BASE_ANDROID_VIDEO_DECODER_JOB_H_ |
| 6 #define MEDIA_BASE_ANDROID_VIDEO_DECODER_JOB_H_ | 6 #define MEDIA_BASE_ANDROID_VIDEO_DECODER_JOB_H_ |
| 7 | 7 |
| 8 #include <jni.h> | 8 #include <jni.h> |
| 9 | 9 |
| 10 #include "media/base/android/media_decoder_job.h" | 10 #include "media/base/android/media_decoder_job.h" |
| 11 | 11 |
| 12 namespace media { | 12 namespace media { |
| 13 | 13 |
| 14 class VideoCodecBridge; | 14 class VideoCodecBridge; |
| 15 | 15 |
| 16 // Class for managing video decoding jobs. | 16 // Class for managing video decoding jobs. |
| 17 class VideoDecoderJob : public MediaDecoderJob { | 17 class VideoDecoderJob : public MediaDecoderJob { |
| 18 public: | 18 public: |
| 19 virtual ~VideoDecoderJob(); | 19 virtual ~VideoDecoderJob(); |
| 20 | 20 |
| 21 // Create a new VideoDecoderJob instance. | 21 // Create a new VideoDecoderJob instance. |
| 22 // |video_codec| - The video format the object needs to decode. | 22 // |video_codec| - The video format the object needs to decode. |
| 23 // |size| - The natrual size of the output frames. | 23 // |is_secure| - Whether secure decoding is required. |
| 24 // |size| - The natural size of the output frames. |
| 24 // |surface| - The surface to render the frames to. | 25 // |surface| - The surface to render the frames to. |
| 25 // |media_crypto| - Handle to a Java object responsible for decrypting the | 26 // |media_crypto| - Handle to a Java object responsible for decrypting the |
| 26 // video data. | 27 // video data. |
| 27 // |request_data_cb| - Callback used to request more data for the decoder. | 28 // |request_data_cb| - Callback used to request more data for the decoder. |
| 28 static VideoDecoderJob* Create( | 29 static VideoDecoderJob* Create(const VideoCodec video_codec, |
| 29 const VideoCodec video_codec, const gfx::Size& size, jobject surface, | 30 bool is_secure, |
| 30 jobject media_crypto, const base::Closure& request_data_cb); | 31 const gfx::Size& size, |
| 32 jobject surface, |
| 33 jobject media_crypto, |
| 34 const base::Closure& request_data_cb); |
| 31 | 35 |
| 32 private: | 36 private: |
| 33 VideoDecoderJob(scoped_ptr<VideoCodecBridge> video_codec_bridge, | 37 VideoDecoderJob(scoped_ptr<VideoCodecBridge> video_codec_bridge, |
| 34 const base::Closure& request_data_cb); | 38 const base::Closure& request_data_cb); |
| 35 | 39 |
| 36 // MediaDecoderJob implementation. | 40 // MediaDecoderJob implementation. |
| 37 virtual void ReleaseOutputBuffer( | 41 virtual void ReleaseOutputBuffer( |
| 38 int outputBufferIndex, size_t size, | 42 int outputBufferIndex, size_t size, |
| 39 const base::TimeDelta& presentation_timestamp, | 43 const base::TimeDelta& presentation_timestamp, |
| 40 const MediaDecoderJob::DecoderCallback& callback, | 44 const MediaDecoderJob::DecoderCallback& callback, |
| 41 MediaCodecStatus status) OVERRIDE; | 45 MediaCodecStatus status) OVERRIDE; |
| 42 | 46 |
| 43 virtual bool ComputeTimeToRender() const OVERRIDE; | 47 virtual bool ComputeTimeToRender() const OVERRIDE; |
| 44 | 48 |
| 45 scoped_ptr<VideoCodecBridge> video_codec_bridge_; | 49 scoped_ptr<VideoCodecBridge> video_codec_bridge_; |
| 46 }; | 50 }; |
| 47 | 51 |
| 48 } // namespace media | 52 } // namespace media |
| 49 | 53 |
| 50 #endif // MEDIA_BASE_ANDROID_VIDEO_DECODER_JOB_H_ | 54 #endif // MEDIA_BASE_ANDROID_VIDEO_DECODER_JOB_H_ |
| OLD | NEW |