| Index: content/common/gpu/media/avda_shared_state.cc
|
| diff --git a/content/common/gpu/media/avda_shared_state.cc b/content/common/gpu/media/avda_shared_state.cc
|
| index 7746254fee94c3ecdc1f3bc7d787998d097850f3..90d1fd2bcef493e18f395aaf0e22ad00dca21dd2 100644
|
| --- a/content/common/gpu/media/avda_shared_state.cc
|
| +++ b/content/common/gpu/media/avda_shared_state.cc
|
| @@ -5,6 +5,7 @@
|
| #include "content/common/gpu/media/avda_shared_state.h"
|
|
|
| #include "base/time/time.h"
|
| +#include "content/common/gpu/media/avda_codec_image.h"
|
| #include "ui/gl/gl_bindings.h"
|
| #include "ui/gl/scoped_make_current.h"
|
|
|
| @@ -43,4 +44,30 @@ void AVDASharedState::DidDetachSurfaceTexture() {
|
| surface_texture_is_attached_ = false;
|
| }
|
|
|
| +void AVDASharedState::CodecChanged(media::MediaCodecBridge* codec) {
|
| + for (auto& image_kv : codec_images_)
|
| + image_kv.second->SetMediaCodec(codec);
|
| +}
|
| +
|
| +void AVDASharedState::SetImageForPicture(int picture_buffer_id,
|
| + AVDACodecImage* image) {
|
| + DCHECK(codec_images_.find(picture_buffer_id) == codec_images_.end());
|
| + codec_images_[picture_buffer_id] = image;
|
| +}
|
| +
|
| +AVDACodecImage* AVDASharedState::GetImageForPicture(
|
| + int picture_buffer_id) const {
|
| + auto it = codec_images_.find(picture_buffer_id);
|
| + return it == codec_images_.end() ? nullptr : it->second;
|
| +}
|
| +
|
| +void AVDASharedState::EraseImage(const AVDACodecImage* image) {
|
| + for (auto it = codec_images_.begin(); it != codec_images_.end(); ++it) {
|
| + if (it->second == image) {
|
| + codec_images_.erase(it);
|
| + return;
|
| + }
|
| + }
|
| +}
|
| +
|
| } // namespace content
|
|
|