/* * Copyright 2011 The LibYuv 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.
*/
// Rotate I420 frame.
LIBYUV_API int I420Rotate(const uint8_t* src_y, int src_stride_y, const uint8_t* src_u, int src_stride_u, const uint8_t* src_v, int src_stride_v,
uint8_t* dst_y, int dst_stride_y,
uint8_t* dst_u, int dst_stride_u,
uint8_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode mode);
// Rotate I422 frame.
LIBYUV_API int I422Rotate(const uint8_t* src_y, int src_stride_y, const uint8_t* src_u, int src_stride_u, const uint8_t* src_v, int src_stride_v,
uint8_t* dst_y, int dst_stride_y,
uint8_t* dst_u, int dst_stride_u,
uint8_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode mode);
// Rotate I444 frame.
LIBYUV_API int I444Rotate(const uint8_t* src_y, int src_stride_y, const uint8_t* src_u, int src_stride_u, const uint8_t* src_v, int src_stride_v,
uint8_t* dst_y, int dst_stride_y,
uint8_t* dst_u, int dst_stride_u,
uint8_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode mode);
// Rotate I010 frame.
LIBYUV_API int I010Rotate(const uint16_t* src_y, int src_stride_y, const uint16_t* src_u, int src_stride_u, const uint16_t* src_v, int src_stride_v,
uint16_t* dst_y, int dst_stride_y,
uint16_t* dst_u, int dst_stride_u,
uint16_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode mode);
// Rotate I210 frame.
LIBYUV_API int I210Rotate(const uint16_t* src_y, int src_stride_y, const uint16_t* src_u, int src_stride_u, const uint16_t* src_v, int src_stride_v,
uint16_t* dst_y, int dst_stride_y,
uint16_t* dst_u, int dst_stride_u,
uint16_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode mode);
// Rotate I410 frame.
LIBYUV_API int I410Rotate(const uint16_t* src_y, int src_stride_y, const uint16_t* src_u, int src_stride_u, const uint16_t* src_v, int src_stride_v,
uint16_t* dst_y, int dst_stride_y,
uint16_t* dst_u, int dst_stride_u,
uint16_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode mode);
// Rotate NV12 input and store in I420.
LIBYUV_API int NV12ToI420Rotate(const uint8_t* src_y, int src_stride_y, const uint8_t* src_uv, int src_stride_uv,
uint8_t* dst_y, int dst_stride_y,
uint8_t* dst_u, int dst_stride_u,
uint8_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode mode);
// Convert Android420 to I420 with rotation. // "rotation" can be 0, 90, 180 or 270.
LIBYUV_API int Android420ToI420Rotate(const uint8_t* src_y, int src_stride_y, const uint8_t* src_u, int src_stride_u, const uint8_t* src_v, int src_stride_v, int src_pixel_stride_uv,
uint8_t* dst_y, int dst_stride_y,
uint8_t* dst_u, int dst_stride_u,
uint8_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode rotation);
// Rotate a plane by 0, 90, 180, or 270.
LIBYUV_API int RotatePlane(const uint8_t* src, int src_stride,
uint8_t* dst, int dst_stride, int width, int height, enum RotationMode mode);
// Rotate planes by 90, 180, 270. Deprecated.
LIBYUV_API void RotatePlane90(const uint8_t* src, int src_stride,
uint8_t* dst, int dst_stride, int width, int height);
LIBYUV_API void RotatePlane180(const uint8_t* src, int src_stride,
uint8_t* dst, int dst_stride, int width, int height);
LIBYUV_API void RotatePlane270(const uint8_t* src, int src_stride,
uint8_t* dst, int dst_stride, int width, int height);
// Rotate a plane by 0, 90, 180, or 270.
LIBYUV_API int RotatePlane_16(const uint16_t* src, int src_stride,
uint16_t* dst, int dst_stride, int width, int height, enum RotationMode mode);
// Rotations for when U and V are interleaved. // These functions take one UV input pointer and // split the data into two buffers while // rotating them. // width and height expected to be half size for NV12.
LIBYUV_API int SplitRotateUV(const uint8_t* src_uv, int src_stride_uv,
uint8_t* dst_u, int dst_stride_u,
uint8_t* dst_v, int dst_stride_v, int width, int height, enum RotationMode mode);
LIBYUV_API void SplitRotateUV90(const uint8_t* src, int src_stride,
uint8_t* dst_a, int dst_stride_a,
uint8_t* dst_b, int dst_stride_b, int width, int height);
LIBYUV_API void SplitRotateUV180(const uint8_t* src, int src_stride,
uint8_t* dst_a, int dst_stride_a,
uint8_t* dst_b, int dst_stride_b, int width, int height);
LIBYUV_API void SplitRotateUV270(const uint8_t* src, int src_stride,
uint8_t* dst_a, int dst_stride_a,
uint8_t* dst_b, int dst_stride_b, int width, int height);
// The 90 and 270 functions are based on transposes. // Doing a transpose with reversing the read/write // order will result in a rotation by +- 90 degrees. // Deprecated.
LIBYUV_API void TransposePlane(const uint8_t* src, int src_stride,
uint8_t* dst, int dst_stride, int width, int height);
LIBYUV_API void SplitTransposeUV(const uint8_t* src, int src_stride,
uint8_t* dst_a, int dst_stride_a,
uint8_t* dst_b, int dst_stride_b, int width, int height);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.