diff --git a/selfdrive/loggerd/loggerd.cc b/selfdrive/loggerd/loggerd.cc index 10415cc424..d4d1704789 100644 --- a/selfdrive/loggerd/loggerd.cc +++ b/selfdrive/loggerd/loggerd.cc @@ -91,7 +91,7 @@ LogCameraInfo cameras_logged[LOG_CAMERA_ID_MAX] = { [LOG_CAMERA_ID_QCAMERA] = { .filename = "qcamera.ts", .fps = MAIN_FPS, - .bitrate = 128000, + .bitrate = 256000, .is_h265 = false, .downscale = true, #ifndef QCOM2 diff --git a/selfdrive/loggerd/omx_encoder.cc b/selfdrive/loggerd/omx_encoder.cc index ee0da11c98..1496e82d26 100644 --- a/selfdrive/loggerd/omx_encoder.cc +++ b/selfdrive/loggerd/omx_encoder.cc @@ -259,12 +259,18 @@ OmxEncoder::OmxEncoder(const char* filename, int width, int height, int fps, int avc.nBFrames = 0; avc.nPFrames = 15; - avc.eProfile = OMX_VIDEO_AVCProfileBaseline; + avc.eProfile = OMX_VIDEO_AVCProfileHigh; avc.eLevel = OMX_VIDEO_AVCLevel31; avc.nAllowedPictureTypes |= OMX_VIDEO_PictureTypeB; avc.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterEnable; + avc.nRefFrames = 1; + avc.bUseHadamard = OMX_TRUE; + avc.bEntropyCodingCABAC = OMX_TRUE; + avc.bWeightedPPrediction = OMX_TRUE; + avc.bconstIpred = OMX_TRUE; + OMX_CHECK(OMX_SetParameter(this->handle, OMX_IndexParamVideoAvc, &avc)); } diff --git a/selfdrive/loggerd/tests/test_encoder.py b/selfdrive/loggerd/tests/test_encoder.py index 51e489a021..159cb98d56 100755 --- a/selfdrive/loggerd/tests/test_encoder.py +++ b/selfdrive/loggerd/tests/test_encoder.py @@ -23,14 +23,14 @@ if EON: CAMERAS = [ ("fcamera.hevc", 20, FULL_SIZE), ("dcamera.hevc", 10, 770920), - ("qcamera.ts", 20, 38533), + ("qcamera.ts", 20, 77066), ] else: CAMERAS = [ ("fcamera.hevc", 20, FULL_SIZE), ("dcamera.hevc", 20, FULL_SIZE), ("ecamera.hevc", 20, FULL_SIZE), - ("qcamera.ts", 20, 38533), + ("qcamera.ts", 20, 77066), ] # we check frame count, so we don't have to be too strict on size