Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_DECRYPTOR_H_ | 5 #ifndef MEDIA_BASE_DECRYPTOR_H_ |
| 6 #define MEDIA_BASE_DECRYPTOR_H_ | 6 #define MEDIA_BASE_DECRYPTOR_H_ |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 21 class VideoFrame; | 21 class VideoFrame; |
| 22 | 22 |
| 23 // Decrypts (and decodes) encrypted buffer. | 23 // Decrypts (and decodes) encrypted buffer. |
| 24 // | 24 // |
| 25 // All methods are called on the (video/audio) decoder thread. Decryptor | 25 // All methods are called on the (video/audio) decoder thread. Decryptor |
| 26 // implementations must be thread safe when methods are called this way. | 26 // implementations must be thread safe when methods are called this way. |
| 27 // Depending on the implementation callbacks may be fired synchronously or | 27 // Depending on the implementation callbacks may be fired synchronously or |
| 28 // asynchronously. | 28 // asynchronously. |
| 29 class MEDIA_EXPORT Decryptor { | 29 class MEDIA_EXPORT Decryptor { |
| 30 public: | 30 public: |
| 31 // TODO(xhwang): Replace kError with kDecryptError and kDecodeError. | |
| 32 // TODO(xhwang): Replace kNeedMoreData with kNotEnoughData. | |
| 33 enum Status { | 31 enum Status { |
| 34 kSuccess, // Decryption successfully completed. Decrypted buffer ready. | 32 kSuccess, // Decryption successfully completed. Decrypted buffer ready. |
| 35 kNoKey, // No key is available to decrypt. | 33 kNoKey, // No key is available to decrypt. |
| 36 kNeedMoreData, // Decoder needs more data to produce a frame. | 34 kNeedMoreData, // Decoder needs more data to produce a frame. |
| 37 kError // Key is available but an error occurred during decryption. | 35 kError, // Key is available but an error occurred during decryption. |
| 36 STATUS_MAX = kError | |
|
dcheng
2016/10/14 21:36:42
Nit: it's probably better to be consistent with na
xhwang
2016/10/14 21:40:09
I am not sure. I think at certain point we want to
dcheng
2016/10/14 22:01:12
Shrug, I'm not an owner of this code. But usually,
xhwang
2016/10/14 22:39:54
Agreed. I was updating this then my machine lost p
| |
| 38 }; | 37 }; |
| 39 | 38 |
| 40 // TODO(xhwang): Unify this with DemuxerStream::Type. | 39 // TODO(xhwang): Unify this with DemuxerStream::Type. |
| 41 enum StreamType { | 40 enum StreamType { kAudio, kVideo, STREAM_TYPE_MAX = kVideo }; |
| 42 kAudio, | |
| 43 kVideo | |
| 44 }; | |
| 45 | 41 |
| 46 Decryptor(); | 42 Decryptor(); |
| 47 virtual ~Decryptor(); | 43 virtual ~Decryptor(); |
| 48 | 44 |
| 49 // Indicates that a new key has been added to the MediaKeys object associated | 45 // Indicates that a new key has been added to the MediaKeys object associated |
| 50 // with the Decryptor. | 46 // with the Decryptor. |
| 51 typedef base::Callback<void()> NewKeyCB; | 47 typedef base::Callback<void()> NewKeyCB; |
| 52 | 48 |
| 53 // Registers a NewKeyCB which should be called when a new key is added to the | 49 // Registers a NewKeyCB which should be called when a new key is added to the |
| 54 // decryptor. Only one NewKeyCB can be registered for one |stream_type|. | 50 // decryptor. Only one NewKeyCB can be registered for one |stream_type|. |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 159 // The decoder can be reinitialized after it is uninitialized. | 155 // The decoder can be reinitialized after it is uninitialized. |
| 160 virtual void DeinitializeDecoder(StreamType stream_type) = 0; | 156 virtual void DeinitializeDecoder(StreamType stream_type) = 0; |
| 161 | 157 |
| 162 private: | 158 private: |
| 163 DISALLOW_COPY_AND_ASSIGN(Decryptor); | 159 DISALLOW_COPY_AND_ASSIGN(Decryptor); |
| 164 }; | 160 }; |
| 165 | 161 |
| 166 } // namespace media | 162 } // namespace media |
| 167 | 163 |
| 168 #endif // MEDIA_BASE_DECRYPTOR_H_ | 164 #endif // MEDIA_BASE_DECRYPTOR_H_ |
| OLD | NEW |