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;