Adds support for reading and writing 10/12-bit y4m The y4m extension used is the same as the one used in ffmpeg/x264. The patch is adapted from the highbitdepth branch. Also adds unit tests for y4m header parsing and md5 check of the raw frame data, as well as y4m writing. Change-Id: Ie2794daf6dbafd2f128464f9b9da520fc54c0dd6
diff --git a/test/y4m_video_source.h b/test/y4m_video_source.h index 7419043..378e75b 100644 --- a/test/y4m_video_source.h +++ b/test/y4m_video_source.h
@@ -38,24 +38,30 @@ CloseSource(); } - virtual void Begin() { + virtual void OpenSource() { CloseSource(); input_file_ = OpenTestDataFile(file_name_); ASSERT_TRUE(input_file_ != NULL) << "Input file open failed. Filename: " - << file_name_; + << file_name_; + } - y4m_input_open(&y4m_, input_file_, NULL, 0, 0); + virtual void ReadSourceToStart() { + ASSERT_TRUE(input_file_ != NULL); + ASSERT_FALSE(y4m_input_open(&y4m_, input_file_, NULL, 0, 0)); framerate_numerator_ = y4m_.fps_n; framerate_denominator_ = y4m_.fps_d; - frame_ = 0; for (unsigned int i = 0; i < start_; i++) { - Next(); + Next(); } - FillFrame(); } + virtual void Begin() { + OpenSource(); + ReadSourceToStart(); + } + virtual void Next() { ++frame_; FillFrame();