Home | History | Annotate | Download | only in protocol
      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
      3 // found in the LICENSE file.
      4 
      5 #include "remoting/protocol/video_reader.h"
      6 
      7 #include "remoting/protocol/session_config.h"
      8 #include "remoting/protocol/protobuf_video_reader.h"
      9 
     10 namespace remoting {
     11 namespace protocol {
     12 
     13 VideoReader::~VideoReader() { }
     14 
     15 // static
     16 scoped_ptr<VideoReader> VideoReader::Create(const SessionConfig& config) {
     17   const ChannelConfig& video_config = config.video_config();
     18   if (video_config.transport == ChannelConfig::TRANSPORT_STREAM) {
     19     if (video_config.codec == ChannelConfig::CODEC_VP8) {
     20       return scoped_ptr<VideoReader>(
     21           new ProtobufVideoReader(VideoPacketFormat::ENCODING_VP8));
     22     } else if (video_config.codec == ChannelConfig::CODEC_VP9) {
     23       return scoped_ptr<VideoReader>(
     24           new ProtobufVideoReader(VideoPacketFormat::ENCODING_VP9));
     25     } else if (video_config.codec == ChannelConfig::CODEC_ZIP) {
     26       return scoped_ptr<VideoReader>(
     27           new ProtobufVideoReader(VideoPacketFormat::ENCODING_ZLIB));
     28     } else if (video_config.codec == ChannelConfig::CODEC_VERBATIM) {
     29       return scoped_ptr<VideoReader>(
     30           new ProtobufVideoReader(VideoPacketFormat::ENCODING_VERBATIM));
     31     }
     32   }
     33   NOTREACHED();
     34   return scoped_ptr<VideoReader>();
     35 }
     36 
     37 }  // namespace protocol
     38 }  // namespace remoting
     39