#include "test/testsupport/ivf_video_frame_generator.h"
#include <limits>
#include "api/environment/environment.h"
#include "api/video/encoded_image.h"
#include "api/video/i420_buffer.h"
#include "api/video_codecs/video_codec.h"
#include "media/base/media_constants.h"
#include "modules/video_coding/codecs/av1/dav1d_decoder.h"
#include "modules/video_coding/codecs/h264/include/h264.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
#include "modules/video_coding/codecs/vp9/include/vp9.h"
#include "modules/video_coding/include/video_error_codes.h"
#include "rtc_base/checks.h"
#include "rtc_base/system/file_wrapper.h"
namespace webrtc {
namespace test {
namespace {
constexpr TimeDelta kMaxNextFrameWaitTimeout = …;
std::unique_ptr<VideoDecoder> CreateDecoder(const Environment& env,
VideoCodecType codec_type) { … }
}
IvfVideoFrameGenerator::IvfVideoFrameGenerator(const Environment& env,
absl::string_view file_name)
: … { … }
IvfVideoFrameGenerator::~IvfVideoFrameGenerator() { … }
FrameGeneratorInterface::VideoFrameData IvfVideoFrameGenerator::NextFrame() { … }
void IvfVideoFrameGenerator::SkipNextFrame() { … }
void IvfVideoFrameGenerator::ChangeResolution(size_t width, size_t height) { … }
FrameGeneratorInterface::Resolution IvfVideoFrameGenerator::GetResolution()
const { … }
int32_t IvfVideoFrameGenerator::DecodedCallback::Decoded(
VideoFrame& decoded_image) { … }
int32_t IvfVideoFrameGenerator::DecodedCallback::Decoded(
VideoFrame& decoded_image,
int64_t decode_time_ms) { … }
void IvfVideoFrameGenerator::DecodedCallback::Decoded(
VideoFrame& decoded_image,
absl::optional<int32_t> decode_time_ms,
absl::optional<uint8_t> qp) { … }
void IvfVideoFrameGenerator::OnFrameDecoded(const VideoFrame& decoded_frame) { … }
}
}