aboutsummaryrefslogtreecommitdiff
path: root/cast/standalone_sender/streaming_encoder_util.cc
diff options
context:
space:
mode:
authorKennan Gumbs <kennangumbs@google.com>2021-08-10 18:46:42 -0400
committerOpenscreen LUCI CQ <openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com>2021-08-11 17:02:39 +0000
commit65bcc6e2e999734396ed5abef202b1bfe4228e21 (patch)
tree521c5027f7d80f248994d3240b51d9210b3df251 /cast/standalone_sender/streaming_encoder_util.cc
parent8b2ec3ddc163fe9c5216d4869d3b5f0c7efd33b1 (diff)
downloadopenscreen-65bcc6e2e999734396ed5abef202b1bfe4228e21.tar.gz
Enable AV1 codec in standalone sender and receiver
This patch adds support for AV1 using libaom. It also adds documentation for compiling libaom from source, since the version provided by the Linux package manager is too slow for realistic use. Change-Id: Icd0bb3001a1107087749de9e24a9781b3b8b04d4 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/3066030 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
Diffstat (limited to 'cast/standalone_sender/streaming_encoder_util.cc')
-rw-r--r--cast/standalone_sender/streaming_encoder_util.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/cast/standalone_sender/streaming_encoder_util.cc b/cast/standalone_sender/streaming_encoder_util.cc
new file mode 100644
index 00000000..9ead2bd9
--- /dev/null
+++ b/cast/standalone_sender/streaming_encoder_util.cc
@@ -0,0 +1,30 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "cast/standalone_sender/streaming_encoder_util.h"
+
+#include <string.h>
+
+#include <algorithm>
+
+namespace openscreen {
+namespace cast {
+void CopyPlane(const uint8_t* src,
+ int src_stride,
+ int num_rows,
+ uint8_t* dst,
+ int dst_stride) {
+ if (src_stride == dst_stride) {
+ memcpy(dst, src, src_stride * num_rows);
+ return;
+ }
+ const int bytes_per_row = std::min(src_stride, dst_stride);
+ while (--num_rows >= 0) {
+ memcpy(dst, src, bytes_per_row);
+ dst += dst_stride;
+ src += src_stride;
+ }
+}
+} // namespace cast
+} // namespace openscreen