Get rid of packet loss related stuff from videoprocessor.
This feature is not needed in video codec testing framework. In WebRTC video codecs never deal with packet loss. Packet loss is handled by jitter buffer which prevents passing of incomplete frames to decoder. Bug: webrtc:8768 Change-Id: I211cf51d913bec6a1f935e30691661d428ebd3b6 Reviewed-on: https://webrtc-review.googlesource.com/40740 Commit-Queue: Sergey Silkin <ssilkin@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21722}
This commit is contained in:
committed by
Commit Bot
parent
e93de5ff70
commit
1723cf9fa2
@ -19,7 +19,6 @@
|
||||
#include "api/video/video_frame.h"
|
||||
#include "common_video/libyuv/include/webrtc_libyuv.h"
|
||||
#include "modules/video_coding/codecs/h264/include/h264_globals.h"
|
||||
#include "modules/video_coding/codecs/test/packet_manipulator.h"
|
||||
#include "modules/video_coding/codecs/test/stats.h"
|
||||
#include "modules/video_coding/codecs/test/test_config.h"
|
||||
#include "modules/video_coding/include/video_codec_interface.h"
|
||||
@ -46,23 +45,12 @@ namespace test {
|
||||
// The class processes a frame at the time for the configured input file.
|
||||
// It maintains state of where in the source input file the processing is at.
|
||||
//
|
||||
// Regarding packet loss: Note that keyframes are excluded (first or all
|
||||
// depending on the ExcludeFrameTypes setting). This is because if key frames
|
||||
// would be altered, all the following delta frames would be pretty much
|
||||
// worthless. VP8 has an error-resilience feature that makes it able to handle
|
||||
// packet loss in key non-first keyframes, which is why only the first is
|
||||
// excluded by default.
|
||||
// Packet loss in such important frames is handled on a higher level in the
|
||||
// Video Engine, where signaling would request a retransmit of the lost packets,
|
||||
// since they're so important.
|
||||
//
|
||||
// Note this class is not thread safe and is meant for simple testing purposes.
|
||||
class VideoProcessor {
|
||||
public:
|
||||
VideoProcessor(webrtc::VideoEncoder* encoder,
|
||||
webrtc::VideoDecoder* decoder,
|
||||
FrameReader* analysis_frame_reader,
|
||||
PacketManipulator* packet_manipulator,
|
||||
const TestConfig& config,
|
||||
Stats* stats,
|
||||
IvfFileWriter* encoded_frame_writer,
|
||||
@ -177,7 +165,6 @@ class VideoProcessor {
|
||||
void FrameDecoded(const webrtc::VideoFrame& image);
|
||||
|
||||
void WriteDecodedFrameToFile(rtc::Buffer* buffer);
|
||||
bool ExcludeFrame(const EncodedImage& encoded_image);
|
||||
|
||||
TestConfig config_ RTC_GUARDED_BY(sequence_checker_);
|
||||
|
||||
@ -190,9 +177,6 @@ class VideoProcessor {
|
||||
VideoProcessorEncodeCompleteCallback encode_callback_;
|
||||
VideoProcessorDecodeCompleteCallback decode_callback_;
|
||||
|
||||
// Fake network.
|
||||
PacketManipulator* const packet_manipulator_;
|
||||
|
||||
// Input frames. Used as reference at frame quality evaluation.
|
||||
// Async codecs might queue frames. To handle that we keep input frame
|
||||
// and release it after corresponding coded frame is decoded and quality
|
||||
@ -218,9 +202,6 @@ class VideoProcessor {
|
||||
size_t num_encoded_frames_ RTC_GUARDED_BY(sequence_checker_);
|
||||
size_t num_decoded_frames_ RTC_GUARDED_BY(sequence_checker_);
|
||||
|
||||
// Keep track of if we have excluded the first key frame from packet loss.
|
||||
bool first_key_frame_has_been_excluded_ RTC_GUARDED_BY(sequence_checker_);
|
||||
|
||||
// Keep track of the last successfully decoded frame, since we write that
|
||||
// frame to disk when decoding fails.
|
||||
rtc::Buffer last_decoded_frame_buffer_ RTC_GUARDED_BY(sequence_checker_);
|
||||
|
||||
Reference in New Issue
Block a user