From ba97eec1275dc6d5a867e644283d24264703f2db Mon Sep 17 00:00:00 2001 From: Artem Titov Date: Mon, 25 Sep 2023 12:09:05 +0200 Subject: [PATCH] Add string_view overload for Wrap method FileWrapper API is WebRTC private, so exposing absl::string_view overload for thrid-party users. Bug: b/301228802 Change-Id: Id81775c8078e61eafe9bee53a4cba6ac476b11d6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/321460 Commit-Queue: Artem Titov Reviewed-by: Ilya Nikolaevskiy Cr-Commit-Position: refs/heads/main@{#40798} --- modules/video_coding/utility/ivf_file_writer.cc | 13 +++++++++++++ modules/video_coding/utility/ivf_file_writer.h | 3 +++ 2 files changed, 16 insertions(+) diff --git a/modules/video_coding/utility/ivf_file_writer.cc b/modules/video_coding/utility/ivf_file_writer.cc index fca2766a19..422e4585a8 100644 --- a/modules/video_coding/utility/ivf_file_writer.cc +++ b/modules/video_coding/utility/ivf_file_writer.cc @@ -10,13 +10,20 @@ #include "modules/video_coding/utility/ivf_file_writer.h" +#include +#include +#include #include +#include "absl/strings/string_view.h" +#include "api/video/encoded_image.h" +#include "api/video/video_codec_type.h" #include "api/video_codecs/video_codec.h" #include "modules/rtp_rtcp/source/byte_io.h" #include "modules/video_coding/utility/ivf_defines.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" +#include "rtc_base/system/file_wrapper.h" // TODO(palmkvist): make logging more informative in the absence of a file name // (or get one) @@ -53,6 +60,12 @@ std::unique_ptr IvfFileWriter::Wrap(FileWrapper file, new IvfFileWriter(std::move(file), byte_limit)); } +std::unique_ptr IvfFileWriter::Wrap(absl::string_view filename, + size_t byte_limit) { + return std::unique_ptr( + new IvfFileWriter(FileWrapper::OpenWriteOnly(filename), byte_limit)); +} + bool IvfFileWriter::WriteHeader() { if (!file_.Rewind()) { RTC_LOG(LS_WARNING) << "Unable to rewind ivf output file."; diff --git a/modules/video_coding/utility/ivf_file_writer.h b/modules/video_coding/utility/ivf_file_writer.h index ec8a7bf9e1..c1c088690b 100644 --- a/modules/video_coding/utility/ivf_file_writer.h +++ b/modules/video_coding/utility/ivf_file_writer.h @@ -16,6 +16,7 @@ #include +#include "absl/strings/string_view.h" #include "api/video/encoded_image.h" #include "api/video/video_codec_type.h" #include "rtc_base/numerics/sequence_number_unwrapper.h" @@ -31,6 +32,8 @@ class IvfFileWriter { // will fail. A `byte_limit` of 0 is equivalent to no limit. static std::unique_ptr Wrap(FileWrapper file, size_t byte_limit); + static std::unique_ptr Wrap(absl::string_view filename, + size_t byte_limit); ~IvfFileWriter(); IvfFileWriter(const IvfFileWriter&) = delete;