Move function PrintVideoFrame to the test file where it is used.

Bug: webrtc:10198
Change-Id: I57a0d335c7d0dac8cade7a0e2dfa3e8898e7efd4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179370
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31871}
This commit is contained in:
Niels Möller
2020-07-15 16:52:16 +02:00
committed by Commit Bot
parent 8d040d2e0e
commit df2959acc6
3 changed files with 32 additions and 47 deletions

View File

@ -58,16 +58,6 @@ const double kPerfectPSNR = 48.0f;
// video frame.
size_t CalcBufferSize(VideoType type, int width, int height);
// TODO(mikhal): Add unit test for these two functions and determine location.
// Print VideoFrame to file
// Input:
// - frame : Reference to video frame.
// - file : pointer to file object. It is assumed that the file is
// already open for writing.
// Return value: 0 if OK, < 0 otherwise.
int PrintVideoFrame(const VideoFrame& frame, FILE* file);
int PrintVideoFrame(const I420BufferInterface& frame, FILE* file);
// Extract buffer from VideoFrame or I420BufferInterface (consecutive
// planes, no stride)
// Input:

View File

@ -31,6 +31,38 @@ void Calc16ByteAlignedStride(int width, int* stride_y, int* stride_uv) {
*stride_uv = 16 * ((width + 31) / 32);
}
int PrintPlane(const uint8_t* buf,
int width,
int height,
int stride,
FILE* file) {
for (int i = 0; i < height; i++, buf += stride) {
if (fwrite(buf, 1, width, file) != static_cast<unsigned int>(width))
return -1;
}
return 0;
}
int PrintVideoFrame(const I420BufferInterface& frame, FILE* file) {
int width = frame.width();
int height = frame.height();
int chroma_width = frame.ChromaWidth();
int chroma_height = frame.ChromaHeight();
if (PrintPlane(frame.DataY(), width, height, frame.StrideY(), file) < 0) {
return -1;
}
if (PrintPlane(frame.DataU(), chroma_width, chroma_height, frame.StrideU(),
file) < 0) {
return -1;
}
if (PrintPlane(frame.DataV(), chroma_width, chroma_height, frame.StrideV(),
file) < 0) {
return -1;
}
return 0;
}
} // Anonymous namespace
class TestLibYuv : public ::testing::Test {

View File

@ -56,43 +56,6 @@ size_t CalcBufferSize(VideoType type, int width, int height) {
return buffer_size;
}
static int PrintPlane(const uint8_t* buf,
int width,
int height,
int stride,
FILE* file) {
for (int i = 0; i < height; i++, buf += stride) {
if (fwrite(buf, 1, width, file) != static_cast<unsigned int>(width))
return -1;
}
return 0;
}
// TODO(nisse): Belongs with the test code?
int PrintVideoFrame(const I420BufferInterface& frame, FILE* file) {
int width = frame.width();
int height = frame.height();
int chroma_width = frame.ChromaWidth();
int chroma_height = frame.ChromaHeight();
if (PrintPlane(frame.DataY(), width, height, frame.StrideY(), file) < 0) {
return -1;
}
if (PrintPlane(frame.DataU(), chroma_width, chroma_height, frame.StrideU(),
file) < 0) {
return -1;
}
if (PrintPlane(frame.DataV(), chroma_width, chroma_height, frame.StrideV(),
file) < 0) {
return -1;
}
return 0;
}
int PrintVideoFrame(const VideoFrame& frame, FILE* file) {
return PrintVideoFrame(*frame.video_frame_buffer()->ToI420(), file);
}
int ExtractBuffer(const rtc::scoped_refptr<I420BufferInterface>& input_frame,
size_t size,
uint8_t* buffer) {