// If you modify this file,
//    1. Push it to /vendor/etc/media_kalama/video_system_specs.json on the device
//    2. Kill media.hwcodec to get the new changed values.
// Note: Please do not use hexadecimal values 0x in this file.
{
    "Video": {
    // feature list used for enable/disable
        "Features": {
            // This is used for encoder color space conversion with custom matrix.
            // custom matrix is defined in kernel driver
            // this triggers to enable CSC to 709LR with custom matrix
            "enc_csc_custom_matrix": false,
            // encoder csc enable
            "enc_csc_enable": false,
            // this will enable carveout memory for secure encoder bitstream
            "hw_protected_carveout": false
        },
        "Presets": {
            // control to force enable linear color format for encoder
            // if this is enable, then encoder will ask camera via
            // consumer flag to inform usage of linear color format.
            // it is used only for camera path. can't be used for non-camera producer case
            // it is bitmask:
            //  0: no override,
            //  1: enable 8 bit: linear format. 10 bit: compressed format
            //  2: 8 bit: compressed format. 10 bit: linear format
            //  3: 8 bit: linear format. 10 bit: linear format
            "enc_linear_color_format": 0,
            // override chroma qp offset value for 8 and 10 bits:
            // default: 0
            // allowed override value: -12
            "enc_chroma_qp_offset_10_bit": 0,
            "enc_chroma_qp_offset_8_bit": 0,
            //encoder bitrate savings control (CAC) - content adaptive coding feature
            // it is bitmask.
            //  0x0: disable CAC
            //  0x1: 8 bit: enable.  10 bit: disable
            //  0x2: 8 bit: disable. 10 bit: enable
            //  0x3: 8 bit: enable.  10 bit: enable
            "enc_bitrate_savings": 3,
            "max_retry_alloc_output_timeout": 10000 //IKSWW-101992:set time threshold to freeze app at background
        },

        // "DolbyVision": {
        //     "profiles": [5, 8, 9],
        //     "max_main_tier_level": 9,
        //     "max_high_tier_level": 9
        // },

        // list of codec plugin libraries to be loaded into codec registry
        "QC2CodecPlugins": [
            "libqc2vppfilter.so",
            "libqcodec2_imgtxrfilter.so"
        ],

        // list of filters used in pre processing
        // each filter shall have properties codec_name/lib_name/input_streams/output_streams
        // input_streams lists the id of input streams those are consumed by the filter
        // output streams lists the is of output streams those are generated by the filter
        // main stream id must be 0
        // An example multiple-stream topology:
        // "QC2PreProcessingFilters": [
        //     {
        //         // do not include .secure filter
        //         // both non-secure and secure filters are covered by non-secure filter name
        //         "codec_name": "mock.c2.qti.filter.colorconverter",
        //         "lib_name": "libqcodec2_mock_color_converter.so",
        //         // the initial input stream must be main stream (id 0)
        //         "input_streams": [0],
        //         "output_streams": [0, 1]
        //     },
        //     {
        //         "codec_name": "mock.c2.qti.filter.vpp",
        //         "lib_name": "libqcodec2_mock_vpp.so",
        //         "input_streams": [0],
        //         "output_streams": [0]
        //     },
        //     {
        //         "codec_name": "mock.c2.qti.filter.saliency",
        //         "lib_name": "libqcodec2_mock_saliency.so",
        //         "input_streams": [1],
        //         "output_streams": [1]
        //     },
        //     {
        //         "codec_name": "mock.c2.qti.filter.streamintegrator",
        //         "lib_name": "libqcodec2_mock_stream_integrator.so",
        //         "input_streams": [0, 1],
        //         "output_streams": [0]
        //     }
        // ],
        //
        "QC2PreProcessingFilters": [
            {
                // do not include .secure filter
                // both non-secure and secure filters are covered by non-secure filter name
                "codec_name": "c2.qti.filter.imagetransform",
                "lib_name": "libqcodec2_imgtxrfilter.so",
                "input_streams": [0],
                "output_streams": [0]
            },
            {
                "codec_name": "c2.qti.filter.cvp",
                "lib_name": "libqcodec2_cvpfilter.so",
                "input_streams": [0],
                "output_streams": [0]
            }
        ],

        "QC2PostProcessingFilters": {
            "vppFilter": [
                "c2.qti.vpp.filter",
                "c2.qti.vpp.filter.secure"
            ]
        },

        //
        // Put below optional codecs under "OptionalCodecs" to enable it
        // "c2.qti.dv.decoder",
        // "c2.qti.dv.decoder.secure",
        // "c2.qti.dv.encoder"
        //
        "OptionalCodecs": [
        ]
    }
}
