77 lines
2.1 KiB
C++
77 lines
2.1 KiB
C++
/*
|
|
* Copyright (c) 2011 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.
|
|
*/
|
|
|
|
/*
|
|
* interpolator.h
|
|
* Interface to the WebRTC's interpolation functionality
|
|
*/
|
|
|
|
#ifndef WEBRTC_COMMON_VIDEO_INTERFACE_INTERPOLATOR_H
|
|
#define WEBRTC_COMMON_VIDEO_INTERFACE_INTERPOLATOR_H
|
|
|
|
#include "typedefs.h"
|
|
#include "vplib.h"
|
|
|
|
namespace webrtc
|
|
{
|
|
|
|
// supported interpolation types
|
|
enum interpolatorType
|
|
{
|
|
kBilinear
|
|
};
|
|
|
|
|
|
class interpolator
|
|
{
|
|
public:
|
|
interpolator();
|
|
~interpolator();
|
|
|
|
// Set interpolation properties:
|
|
//
|
|
// Return value : 0 if OK,
|
|
// : -1 - parameter error
|
|
// : -2 - general error
|
|
WebRtc_Word32 Set(WebRtc_UWord32 srcWidth, WebRtc_UWord32 srcHeight,
|
|
WebRtc_UWord32 dstWidth, WebRtc_UWord32 dstHeight,
|
|
VideoType srcVideoType, VideoType dstVideoType,
|
|
interpolatorType type);
|
|
|
|
// Interpolate frame
|
|
//
|
|
// Return value : Height of interpolated frame if OK,
|
|
// : -1 - parameter error
|
|
// : -2 - general error
|
|
WebRtc_Word32 Interpolate(const WebRtc_UWord8* srcFrame,
|
|
WebRtc_UWord8*& dstFrame);
|
|
|
|
private:
|
|
|
|
// Extract computation method given actual type
|
|
WebRtc_Word32 Method(interpolatorType type);
|
|
|
|
// Determine if the VideoTypes are currently supported
|
|
WebRtc_Word32 SupportedVideoType(VideoType srcVideoType,
|
|
VideoType dstVideoType);
|
|
|
|
interpolatorType _method;
|
|
WebRtc_UWord32 _srcWidth;
|
|
WebRtc_UWord32 _srcHeight;
|
|
WebRtc_UWord32 _dstWidth;
|
|
WebRtc_UWord32 _dstHeight;
|
|
};
|
|
|
|
|
|
} // namespace webrtc
|
|
|
|
|
|
#endif // WEBRTC_COMMON_VIDEO_INTERFACE_INTERPOLATOR_H
|