Ejemplo n.º 1
0
    void Spatializer<SPATIALIZER_CALLBACK_IMPL>::init()
    {
        num_sources_in_renderer = 0;
        apf::parameter_map map = getDefaultParams();
        renderer = std::make_unique<ssr::BinauralRenderer>(map);
//        renderer = std::unique_ptr<ssr::BinauralRenderer>(new ssr::BinauralRenderer(map));
        renderer->load_reproduction_setup();
        
        // Set an orientation offset to make NORTH the 0 azimuth
        renderer->state.reference_offset_orientation = Orientation(90);
    }
/* ARGSUSED - this line tells the TI compiler not to warn about unused args. */
Int TRIK_VIDTRANSCODE_RESAMPLE_initObj(
    IALG_Handle		algHandle,
    const IALG_MemRec	algMemTab[],
    IALG_Handle		algParent,
    const IALG_Params*	algParams)
{
    TrikVideoResampleHandle* handle = (TrikVideoResampleHandle*)algHandle;

    const TRIK_VIDTRANSCODE_RESAMPLE_Params* params = (TRIK_VIDTRANSCODE_RESAMPLE_Params*)algParams;
    if (params == NULL)
        params = getDefaultParams();

    handle->m_params = *params;
    handle->m_dynamicParams = *getDefaultDynamicParams();
    handleBuildDynamicParams(handle);
    if (!handleVerifyParams(handle))
        return IALG_EFAIL;

    return IALG_EOK;
}
/*
 *  ======== TRIK_VIDTRANSCODE_RESAMPLE_control ========
 */
XDAS_Int32 TRIK_VIDTRANSCODE_RESAMPLE_control(
    IVIDTRANSCODE_Handle		algHandle,
    IVIDTRANSCODE_Cmd			vidCmd,
    IVIDTRANSCODE_DynamicParams*	vidDynParams,
    IVIDTRANSCODE_Status*		vidStatus)
{
    TrikVideoResampleHandle* handle = (TrikVideoResampleHandle*)algHandle;
    XDAS_Int32 retVal = IVIDTRANSCODE_EFAIL;

    /* initialize for the general case where we don't access the data buffer */
    XDM_CLEARACCESSMODE_READ(vidStatus->data.accessMask);
    XDM_CLEARACCESSMODE_WRITE(vidStatus->data.accessMask);

    switch (vidCmd)
    {
        case XDM_GETSTATUS:
        case XDM_GETBUFINFO:
            vidStatus->extendedError = 0;

            vidStatus->bufInfo.minNumInBufs = 1;
            vidStatus->bufInfo.minNumOutBufs = 1;
            vidStatus->bufInfo.minInBufSize[0] = 0;
            vidStatus->bufInfo.minOutBufSize[0] = 0;

            XDM_SETACCESSMODE_WRITE(vidStatus->data.accessMask);
            retVal = IVIDTRANSCODE_EOK;
            break;

        case XDM_SETPARAMS:
            if (vidDynParams->size == sizeof(IVIDTRANSCODE_DynamicParams))
            {
                handle->m_dynamicParams.base = *((IVIDTRANSCODE_DynamicParams*)vidDynParams);
                handleBuildDynamicParams(handle);
                retVal = handleVerifyParams(handle) ? IVIDTRANSCODE_EOK : IVIDTRANSCODE_EFAIL;
            }
            else if (vidDynParams->size == sizeof(TRIK_VIDTRANSCODE_RESAMPLE_DynamicParams))
            {
                handle->m_dynamicParams = *((TRIK_VIDTRANSCODE_RESAMPLE_DynamicParams*)vidDynParams);
                retVal = handleVerifyParams(handle) ? IVIDTRANSCODE_EOK : IVIDTRANSCODE_EFAIL;
            }
            else
                retVal = IVIDTRANSCODE_EUNSUPPORTED;
            break;

        case XDM_RESET:
        case XDM_SETDEFAULT:
            handle->m_params = *getDefaultParams();
            handle->m_dynamicParams = *getDefaultDynamicParams();
            handleBuildDynamicParams(handle);
            retVal = handleVerifyParams(handle) ? IVIDTRANSCODE_EOK : IVIDTRANSCODE_EFAIL;
            break;

        case XDM_FLUSH:
            retVal = IVIDTRANSCODE_EOK;
            break;

        case XDM_GETVERSION:
            if (reportVersion(vidStatus->data.buf, vidStatus->data.bufSize))
            {
                XDM_SETACCESSMODE_WRITE(vidStatus->data.accessMask);
                retVal = IVIDTRANSCODE_EOK;
            }
            else
                retVal = IVIDTRANSCODE_EFAIL;
            break;

        default:
            /* unsupported cmd */
            retVal = IVIDTRANSCODE_EFAIL;
            break;
    }

    return retVal;
}