scoped_refptr<VideoFrameBuffer>
MappableNativeBuffer::ScaledBuffer::CropAndScale(int offset_x, int offset_y, int crop_width, int crop_height, int scaled_width, int scaled_height) { return make_ref_counted<ScaledBuffer>(parent_, scaled_width, scaled_height);
}
MappableNativeBuffer::MappableNativeBuffer(VideoFrameBuffer::Type mappable_type, int width, int height)
: mappable_type_(mappable_type), width_(width), height_(height) {
RTC_DCHECK(mappable_type_ == VideoFrameBuffer::Type::kI420 ||
mappable_type_ == VideoFrameBuffer::Type::kNV12);
}
MappableNativeBuffer::~MappableNativeBuffer() {}
scoped_refptr<VideoFrameBuffer> MappableNativeBuffer::CropAndScale( int offset_x, int offset_y, int crop_width, int crop_height, int scaled_width, int scaled_height) { return FullSizeBuffer()->CropAndScale(
offset_x, offset_y, crop_width, crop_height, scaled_width, scaled_height);
}
scoped_refptr<VideoFrameBuffer> MappableNativeBuffer::GetOrCreateMappedBuffer( int width, int height) {
MutexLock lock(&lock_); for (auto& mapped_buffer : mapped_buffers_) { if (mapped_buffer->width() == width && mapped_buffer->height() == height) { return mapped_buffer;
}
}
scoped_refptr<VideoFrameBuffer> mapped_buffer; switch (mappable_type_) { case VideoFrameBuffer::Type::kI420: {
scoped_refptr<I420Buffer> i420_buffer = I420Buffer::Create(width, height);
I420Buffer::SetBlack(i420_buffer.get());
mapped_buffer = i420_buffer; break;
} case VideoFrameBuffer::Type::kNV12: { auto nv12_buffer =
make_ref_counted<NV12BufferWithDidConvertToI420>(width, height);
nv12_buffer->InitializeData();
mapped_buffer = std::move(nv12_buffer); break;
} default:
RTC_DCHECK_NOTREACHED();
}
mapped_buffers_.push_back(mapped_buffer); return mapped_buffer;
}
} // namespace test
} // namespace webrtc
Messung V0.5 in Prozent
¤ 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.0.14Bemerkung:
(vorverarbeitet am 2026-09-28)
¤
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.