Refactor management of overview window copy lifetime into a separate class.
[chromium-blink-merge.git] / media / cast / video_receiver / video_decoder.h
blobe98768c215c840d8e2a04f1cd6c5608f094837ba
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
3 // found in the LICENSE file.
5 #ifndef MEDIA_CAST_VIDEO_RECEIVER_VIDEO_DECODER_H_
6 #define MEDIA_CAST_VIDEO_RECEIVER_VIDEO_DECODER_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "base/threading/non_thread_safe.h"
10 #include "media/cast/cast_config.h"
11 #include "media/cast/cast_receiver.h"
13 namespace media {
14 namespace cast {
16 class Vp8Decoder;
18 // This class is not thread safe; it's only called from the cast video decoder
19 // thread.
20 class VideoDecoder : public base::NonThreadSafe {
21 public:
22 explicit VideoDecoder(const VideoReceiverConfig& video_config);
23 virtual ~VideoDecoder();
25 // Decode a video frame. Decoded (raw) frame will be returned in the
26 // provided video_frame.
27 bool DecodeVideoFrame(const EncodedVideoFrame* encoded_frame,
28 const base::TimeTicks render_time,
29 I420VideoFrame* video_frame);
31 private:
32 VideoCodec codec_;
33 scoped_ptr<Vp8Decoder> vp8_decoder_;
35 DISALLOW_COPY_AND_ASSIGN(VideoDecoder);
38 } // namespace cast
39 } // namespace media
41 #endif // MEDIA_CAST_VIDEO_RECEIVER_VIDEO_DECODER_H_