JohanBlome / encapp

Easy way to test video encoders in Android in large scale.
BSD 3-Clause "New" or "Revised" License
22 stars 15 forks source link

encapp: scripts: support for enums in CLI options #176

Closed chemag closed 1 year ago

chemag commented 1 year ago

Tested:

Before:

$ ./scripts/encapp.py -ddd run ./tests/bitrate_buffer.pbtxt --device-workdir /data/data/com.facebook.encapp -e input.pix_fmt nv12 -i /tmp/out.nv12.yuv --codec c2.android.avc.encoder --bitrate 5Mbps --local-workdir /tmp/testadb devices -l
...
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/google/protobuf/internal/python_message.py", line 702, in field_setter
    new_value = type_checker.CheckValue(new_value)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/google/protobuf/internal/type_checkers.py", line 178, in CheckValue
    raise TypeError(message)
TypeError: 'nv12' has type <class 'str'>, but expected one of: (<class 'int'>,)
...

After:

$ ~/proj/encapp/scripts/encapp.py -ddd run ~/proj/encapp/tests/bitrate_buffer.pbtxt --device-workdir /data/data/com.facebook.encapp -i ${SRC} --codec ${ENCODER} -e input.pix_fmt nv12 -e input.resolution 2688x1952 -e input.framerate 30 -e configure.bitrate_mode ${RATEMODE} --bitrate 1Mbps-31Mbps-1Mbps --local-workdir ${RESDIR}
...
results collect: ['/tmp/testing1/encapp_005e3855-41b8-443e-a29d-033de2a2ba79.json ...
...