shithub: openh264

Download patch

ref: 3ba067a4c874a517a42b1bee1e10fe60cfd4f988
parent: 6b021aed10c0b21ac34cff1ceee9b64f54af1303
parent: 1f598b892b35c3378d8f94111b2fca49610dde08
author: Ethan Hugg <[email protected]>
date: Mon Jan 13 03:29:28 EST 2014

Merge pull request #139 from varunbpatil/enc_arb_res

Updated issues in README, Keep single copy of YUV test streams, enc/dec tests for arbitrary res stream

--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,5 @@
 testbin/test_vd_1d.yuv
 testbin/test_vd_rc.264
 testbin/test_vd_rc.yuv
+testbin/test.264
+testbin/test.yuv
--- a/README.md
+++ b/README.md
@@ -91,7 +91,6 @@
 See the issue tracker on https://github.com/cisco/openh264/issues
 - Encoder errors when resolution exceeds 3840x2160
 - Encoder errors when compressed frame size exceeds half uncompressed size
-- Encoder console app only support multiple of 16 width/height for now
 - Decoder errors when compressed frame size exceeds 1MB
 
 License
binary files /dev/null b/res/Static.264 differ
--- /dev/null
+++ b/res/Static_152_100.yuv
@@ -1,0 +1,1 @@
+������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ)))))))))))))
\ No newline at end of file
--- a/test/decoder_test.cpp
+++ b/test/decoder_test.cpp
@@ -187,7 +187,8 @@
 
 static const FileParam kFileParamArray[] = {
   {"res/test_vd_1d.264", "5827d2338b79ff82cd091c707823e466197281d3"},
-  {"res/test_vd_rc.264", "eea02e97bfec89d0418593a8abaaf55d02eaa1ca"}
+  {"res/test_vd_rc.264", "eea02e97bfec89d0418593a8abaaf55d02eaa1ca"},
+  {"res/Static.264", "91dd4a7a796805b2cd015cae8fd630d96c663f42"}
 };
 
 INSTANTIATE_TEST_CASE_P(DecodeFile, DecoderOutputTest,
--- a/test/encoder_test.cpp
+++ b/test/encoder_test.cpp
@@ -144,6 +144,10 @@
       "res/CiscoVT2people_160x96_6fps.yuv",
       "6eb53b6bfdb95dfca0575bd3efe81aa58163951c", 160, 96, 6.0f
   },
+  {
+      "res/Static_152_100.yuv",
+      "c5af55647a5ead570bd5d96651e05ea699762b8e", 152, 100, 6.0f
+  },
 };
 
 INSTANTIATE_TEST_CASE_P(EncodeFile, EncoderOutputTest,
--- a/testbin/CiscoVT2people_160x96_6fps.yuv
+++ /dev/null
@@ -1,1 +1,0 @@
-��������������������v]TQOOSVWTOLOIMRXUPc�����������������������������������������������������������������������������������������������������������������������鮮������������������a`QNPVYVSPLJLLFLOROL]����������������������������������������������������������������������������������������������������������������������鯯�����������������ahYRNTZTQSJJGGGIEHKHKM[���������������������������������������������������������������������������������������������������������������������鯯�����������������Vd[UX]WNQPMLIGGFIHKHKNO���������������������������������������������������������������������������������������������������������������������魭����������������jSb_^debdbc`b\PRJPQQQNQQk��������������������������������������������������������������������������������������������������������������������뭭����������������]S\Yc�������~ld\^jl_WONTQ�������������������������������������������������������������������������{edr���������������������������������������뮮����������������WPYU����ķ���������taSCPL|�����������������������������������������������������������������}z}�yj^VSNTWfo�����������������������������������뺴����������������STW]����������������p\KHJd��������������������������������������������������������������pb`^UQWRRRVYYSNWblp�����������������������������������ɺ����������������QT]m����Ȼ�����������o\BGZ������������������������������������������������������������ybLQ]L?BGMPUWWYVQQ]nf]��������������������������������빶����������������PZdz����Ȼ�����������wuEGZ�����������������������������������������������������������pTINYWD?HJJMRWWVSUalqjUP{�������������������������������벱����������������Tcp������ı�����������{TGY����������������������������������������������������������hQKKRUM@HWKBGPTSXUTcgnhRFRy������������������������������뭮����������������ajy������ǹ�����������xWHQ���������������������������������������������������������hRMBN_\F?NWO@DLSTUX^abSMRKEO������������������������������뫫����������������wq{���緜xz�����������|YEO��������������������������������������������������������rTOBDOXWICEQPJB>HV[^cgePBFHHLc�����������������������������몪�����������������r���仙��vp����h\bq��YGT�������������������������������������������������������|WZFEEFOZSGFSNHMPDMU^ki^PB?AAFO�����������������������������몪�����������������v������׸�����vgdg_i|�fKq�������������������������������������������������������d^OEFD>L[XKKQSSIVRKZ_ZTSJD>;>AGX����������������������������몪����������������ļ������ۭ�����rq����}�xH�������������������������������������������������������r_[RNB:AOX[PTSZZVPcbKiYGFC>>;>AGIv���������������������������먨�����������������Ϯ����͉EVn�٤�s�������^������������������������������������������������������xd`ZUNA@DHM[^knpsi^goUOUE==;>==>AHR���������������������������맧�����������������������翓���佖xePUi���ng�����������������������������������������������������gg__^LBMJHTh~����}wodXTKB<=><=<;DGOm��������������������������먨������������������������ģ����ơ�}������g�����������������������������������������������������teY]cWDOROTe��������m_XLL@;;==;>>ADJW��������������������������먨�����������������������׽�����ʤ��������q�����������������������������������������������������daZ\_TNYYVby�������t_^LLF??==;>A>DJT��������������������������륦�����������������������Կ�����̡�������y������������������������������������������������������k_YY[MTVQbg����ɿ��zsaZTLM>>==;;C@CEMt�������������������������륦������������������������ȼ����Ъ�������������������������������������������������������������wfZ\VQJTONav�����ǻ��ki]XPQG;<<>><?CELa�������������������������뢤�����������������������κ�������������������������������������������������������������������oa^WSGJNKRi�������¶�s`]ZTLJ;<<==;>@FMR�������������������������롤�����������������|������ѷ��i��cY������������������������������������������������������������i][TODGDHYw������ο���hZ]XUI:99==;><<GK�������������������������뤢��������������}}���������ƺ��|x�����������������������������������������������������������{b[ZQJ@CBLg��������ĵ���c][VQB6:9?;;::BK|������������������������뤢��������������||zys��������ɽ���������������������������������������������������������������x
\ No newline at end of file
--- a/testbin/CiscoVT2people_320x192_12fps.yuv
+++ /dev/null
@@ -1,1 +1,0 @@
-�����������������������������������������s^XSTTPQMMOPRTVZWTQROMNQNJFJQURY[XSOVj������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������豱��������������������������������������j``[SRPPQMNRSTUVSTTUNJHIOMJIIMPPUWVRNKMTx����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������议�������������������������������������y[^h`TNMPONRVXWVTQRRRPLJMMKKJFGKOORSRKLJLY{���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������譭�������������������������������������`gbaVTLJPOPTZ[YVUUSOMLHFHJKKLECFMJOQPPQNJJT|�������������������������������������Ļ�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������谰������������������������������������yVbc\QQPMKMV[YXVTRXSMIJHGFHEEHIHECIJKMIIHIIMS������������������������������������ļ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������议������������������������������������]VmkaURQQOQY[WQPONQOJFKIHFHFFHHHFEEGHIEGKNNNEP�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������误�����������������������������������yR[ff^SSUVVY][SLMNONNKIGGECGFFGFFGHEFHIDHKNLPMKx����������������������������������Ŀ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������议�����������������������������������\QV^c`XUWY[^`ZRNORSQPPOPOMMGEEGDEHJHJLMHIIHMMQP`������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������譭����������������������������������YNWdfc[U^Zdc`YX]ZWY\YXZXWUSLFOKHGHJKJLPMMLKPRQOM������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������뭭����������������������������������vWPU\bb\^fhjp]jlkmlkmifgljdaWTWTIOUXUVTRTSPONRRPSt�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������뭭����������������������������������hUSRX^^X`bu�|kz~�����{z{ukf^^WXOYabef`WZVROLQTRUS�����������������������������������������������������������������������������������������������������������������������������������������������������wy����������������������������������������������������������������������������������뭭����������������������������������_TTPZ]YRUt����������������sjik_aamsopqi[XTNJJOUUQJu������������������������������������������������������������������������������������������������������������������������������������������������vjVKOJJTbru~����������������������������������������������������������������������������묭����������������������������������[RMQV[\Qc������ƿ������������}�|��|z}�rpcXQPK?RPOK`�������������������������������������������������������������������������������������������������������������������������������������������~unc\USQODGNV[^hqx��������
\ No newline at end of file
--- a/testbin/CmdLineExample.sh
+++ b/testbin/CmdLineExample.sh
@@ -1,5 +1,7 @@
 ../h264enc welsenc_vd_1d.cfg
 ../h264enc welsenc_vd_rc.cfg
+../h264enc welsenc_arbitrary_res.cfg
 
-../h264dec test_vd_1d.264 test_vd_1d.yuv
-../h264dec test_vd_rc.264 test_vd_rc.yuv
+../h264dec ../res/test_vd_1d.264 test_vd_1d.yuv
+../h264dec ../res/test_vd_rc.264 test_vd_rc.yuv
+../h264dec ../res/Static.264 Static.yuv
--- a/testbin/CmdLineReadMe
+++ b/testbin/CmdLineReadMe
@@ -2,6 +2,7 @@
 //for encoder configure files
 welsenc_vd_1d.cfg
 welsenc_vd_rc.cfg
+welsenc_arbitrary_res.cfg
 
 //the actual generated decoder EXE files are in folder ../bin/win32/release/ with Release build
 //user may copy "decConsole.exe" and "welsdec.dll" into ../bin
@@ -10,11 +11,12 @@
 Example Command Line for encoding in Windows:
 ../bin/encConsole.exe welsenc_vd_1d.cfg
 ../bin/encConsole.exe welsenc_vd_rc.cfg
+../bin/encConsole.exe welsenc_arbitrary_res.cfg
 
 Example Command Line for decoding in Windows
-../bin/decConsole.exe welsenc_vd_1d.264 welsenc_vd_1d.yuv
-../bin/decConsole.exe welsenc_vd_rc.264 welsenc_vd_rc.yuv
+../bin/decConsole.exe ../res/test_vd_1d.264 test_vd_1d.yuv
+../bin/decConsole.exe ../res/test_vd_rc.264 test_vd_rc.yuv
+../bin/decConsole.exe ../res/Static.264 Static.yuv
 
 Example shell script for Linux for encoder & decoder:
 CmdLineExample.sh
-
--- a/testbin/Static_152_100.yuv
+++ /dev/null
@@ -1,1 +1,0 @@
-������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ))))))))))))))))))))))������������������������������������������Ҫ������������������������������������������jjjjjjjjjjjjjjjjjjjjjjQQQQQQQQQQQQQQQQQQQQQQ)))))))))))))
\ No newline at end of file
--- a/testbin/layer2.cfg
+++ b/testbin/layer2.cfg
@@ -6,7 +6,7 @@
 SourceHeight    192                    # Input  frame height
 FrameRateIn     12                      # Input  frame rate [Hz]
 FrameRateOut    12                     # Output frame rate [Hz]
-InputFile       CiscoVT2people_320x192_12fps.yuv # Input  file
+InputFile       ../res/CiscoVT2people_320x192_12fps.yuv # Input  file
 ReconFile       rec_layer2.yuv          # Reconstructed file
 
 #============================== CODING ==============================
--- a/testbin/layer2_arbitrary_res.cfg
+++ b/testbin/layer2_arbitrary_res.cfg
@@ -6,7 +6,7 @@
 SourceHeight    100                    # Input  frame height
 FrameRateIn     12                      # Input  frame rate [Hz]
 FrameRateOut    12                     # Output frame rate [Hz]
-InputFile       Static_152_100.yuv # Input  file
+InputFile       ../res/Static_152_100.yuv # Input  file
 ReconFile       rec_layer2.yuv          # Reconstructed file
 
 #============================== CODING ==============================
--- a/testbin/layer2_vd.cfg
+++ b/testbin/layer2_vd.cfg
@@ -6,7 +6,7 @@
 SourceHeight    192                    # Input  frame height
 FrameRateIn     12                      # Input  frame rate [Hz]
 FrameRateOut    12                     # Output frame rate [Hz]
-InputFile       CiscoVT2people_320x192_12fps.yuv # Input  file
+InputFile       ../res/CiscoVT2people_320x192_12fps.yuv # Input  file
 ReconFile       rec_layer2.yuv          # Reconstructed file
 
 #============================== CODING ==============================
--- a/testbin/layer2_vd_rc.cfg
+++ b/testbin/layer2_vd_rc.cfg
@@ -6,7 +6,7 @@
 SourceHeight    192                    # Input  frame height
 FrameRateIn     12                      # Input  frame rate [Hz]
 FrameRateOut    12                     # Output frame rate [Hz]
-InputFile       CiscoVT2people_320x192_12fps.yuv # Input  file
+InputFile       ../res/CiscoVT2people_320x192_12fps.yuv # Input  file
 ReconFile       rec_layer2.yuv          # Reconstructed file
 
 #============================== CODING ==============================
--- a/testbin/welsenc_arbitrary_res.cfg
+++ b/testbin/welsenc_arbitrary_res.cfg
@@ -1,7 +1,7 @@
 # Cisco Scalable H.264/AVC Extension Encoder Configuration File
 
 #============================== GENERAL ==============================
-OutputFile              test.264               # Bitstream file
+OutputFile              Static.264               # Bitstream file
 MaxFrameRate            30                     # Maximum frame rate [Hz]
 FramesToBeEncoded       -1                    # Number of frames (at input frame rate)