diff options
Diffstat (limited to 'webrtc/modules/video_coding/main/source/generic_encoder.h')
-rw-r--r-- | webrtc/modules/video_coding/main/source/generic_encoder.h | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/webrtc/modules/video_coding/main/source/generic_encoder.h b/webrtc/modules/video_coding/main/source/generic_encoder.h deleted file mode 100644 index 3a7132860f..0000000000 --- a/webrtc/modules/video_coding/main/source/generic_encoder.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#ifndef WEBRTC_MODULES_VIDEO_CODING_GENERIC_ENCODER_H_ -#define WEBRTC_MODULES_VIDEO_CODING_GENERIC_ENCODER_H_ - -#include "webrtc/modules/video_coding/codecs/interface/video_codec_interface.h" -#include "webrtc/modules/video_coding/main/interface/video_coding_defines.h" - -#include <stdio.h> - -#include "webrtc/base/criticalsection.h" -#include "webrtc/base/scoped_ptr.h" - -namespace webrtc { -class CriticalSectionWrapper; - -namespace media_optimization { -class MediaOptimization; -} // namespace media_optimization - -struct EncoderParameters { - uint32_t target_bitrate; - uint8_t loss_rate; - int64_t rtt; - uint32_t input_frame_rate; -}; - -/*************************************/ -/* VCMEncodeFrameCallback class */ -/***********************************/ -class VCMEncodedFrameCallback : public EncodedImageCallback -{ -public: - VCMEncodedFrameCallback(EncodedImageCallback* post_encode_callback); - virtual ~VCMEncodedFrameCallback(); - - /* - * Callback implementation - codec encode complete - */ - int32_t Encoded( - const EncodedImage& encodedImage, - const CodecSpecificInfo* codecSpecificInfo = NULL, - const RTPFragmentationHeader* fragmentationHeader = NULL); - /* - * Callback implementation - generic encoder encode complete - */ - int32_t SetTransportCallback(VCMPacketizationCallback* transport); - /** - * Set media Optimization - */ - void SetMediaOpt (media_optimization::MediaOptimization* mediaOpt); - - void SetPayloadType(uint8_t payloadType) { _payloadType = payloadType; }; - void SetInternalSource(bool internalSource) { _internalSource = internalSource; }; - - void SetRotation(VideoRotation rotation) { _rotation = rotation; } - -private: - VCMPacketizationCallback* _sendCallback; - media_optimization::MediaOptimization* _mediaOpt; - uint8_t _payloadType; - bool _internalSource; - VideoRotation _rotation; - - EncodedImageCallback* post_encode_callback_; - -#ifdef DEBUG_ENCODER_BIT_STREAM - FILE* _bitStreamAfterEncoder; -#endif -};// end of VCMEncodeFrameCallback class - - -/******************************/ -/* VCMGenericEncoder class */ -/******************************/ -class VCMGenericEncoder -{ - friend class VCMCodecDataBase; -public: - VCMGenericEncoder(VideoEncoder* encoder, - VideoEncoderRateObserver* rate_observer, - VCMEncodedFrameCallback* encoded_frame_callback, - bool internalSource); - ~VCMGenericEncoder(); - /** - * Free encoder memory - */ - int32_t Release(); - /** - * Initialize the encoder with the information from the VideoCodec - */ - int32_t InitEncode(const VideoCodec* settings, - int32_t numberOfCores, - size_t maxPayloadSize); - /** - * Encode raw image - * inputFrame : Frame containing raw image - * codecSpecificInfo : Specific codec data - * cameraFrameRate : Request or information from the remote side - * frameType : The requested frame type to encode - */ - int32_t Encode(const VideoFrame& inputFrame, - const CodecSpecificInfo* codecSpecificInfo, - const std::vector<FrameType>& frameTypes); - - void SetEncoderParameters(const EncoderParameters& params); - EncoderParameters GetEncoderParameters() const; - - int32_t SetPeriodicKeyFrames(bool enable); - - int32_t RequestFrame(const std::vector<FrameType>& frame_types); - - bool InternalSource() const; - - void OnDroppedFrame(); - - bool SupportsNativeHandle() const; - - int GetTargetFramerate(); - -private: - VideoEncoder* const encoder_; - VideoEncoderRateObserver* const rate_observer_; - VCMEncodedFrameCallback* const vcm_encoded_frame_callback_; - const bool internal_source_; - mutable rtc::CriticalSection params_lock_; - EncoderParameters encoder_params_ GUARDED_BY(params_lock_); - VideoRotation rotation_; - bool is_screenshare_; -}; // end of VCMGenericEncoder class - -} // namespace webrtc - -#endif // WEBRTC_MODULES_VIDEO_CODING_GENERIC_ENCODER_H_ |