/* * Copyright (c) 2020 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.
*/
// A for-testing native buffer that is scalable and mappable. The contents of // the buffer is black and the pixels are created upon mapping. Mapped buffers // are stored inside MappableNativeBuffer, allowing tests to verify which // resolutions were mapped, e.g. when passing them in to an encoder or other // modules. class MappableNativeBuffer : public VideoFrameBuffer { public: // If `allow_i420_conversion` is false, calling ToI420() on a non-I420 buffer // will DCHECK-crash. Used to ensure zero-copy in tests.
MappableNativeBuffer(VideoFrameBuffer::Type mappable_type, int width, int height);
~MappableNativeBuffer() override;
rtc::scoped_refptr<VideoFrameBuffer> CropAndScale(int offset_x, int offset_y, int crop_width, int crop_height, int scaled_width, int scaled_height) override;
// Gets all the buffers that have been mapped so far, including mappings of // cropped and scaled buffers.
std::vector<rtc::scoped_refptr<VideoFrameBuffer>> GetMappedFramedBuffers() const; bool DidConvertToI420() const;
class ScaledBuffer : public VideoFrameBuffer { public:
ScaledBuffer(rtc::scoped_refptr<MappableNativeBuffer> parent, int width, int height);
~ScaledBuffer() override;
rtc::scoped_refptr<VideoFrameBuffer> CropAndScale( int offset_x, int offset_y, int crop_width, int crop_height, int scaled_width, int scaled_height) override;
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.