VirtualBox

Changeset 89308 in vbox


Ignore:
Timestamp:
May 27, 2021 9:36:18 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144655
Message:

Audio/ValKit: Various small bugfixes for writing the test manifest file. bugref:10008

Location:
trunk/src/VBox
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/AudioTest.cpp

    r89293 r89308  
    8888 * Returns a random test tone frequency.
    8989 */
    90 DECLINLINE(double) audioTestGetRandomFreq(void)
     90DECLINLINE(double) audioTestToneGetRandomFreq(void)
    9191{
    9292    return s_aAudioTestToneFreqsHz[RTRandU32Ex(0, RT_ELEMENTS(s_aAudioTestToneFreqsHz) - 1)];
     
    105105{
    106106    if (dbFreq == 0.0)
    107         dbFreq = audioTestGetRandomFreq();
    108 
    109     /* Pick a frequency from our selection, so that every time a recording starts
    110      * we'll hopfully generate a different note. */
     107        dbFreq = audioTestToneGetRandomFreq();
     108
    111109    pTone->rdFreqHz = dbFreq;
    112110    pTone->rdFixed  = 2.0 * M_PI * pTone->rdFreqHz / PDMAudioPropsHz(pProps);
     
    262260    /** @todo Make this a bit more sophisticated later, e.g. muting and prequel/sequel are not very balanced. */
    263261
     262    pToneParams->dbFreqHz       = audioTestToneGetRandomFreq();
    264263    pToneParams->msPrequel      = RTRandU32Ex(0, RT_MS_5SEC);
    265264#ifdef DEBUG_andy
     
    335334    AssertRCReturn(rc, rc);
    336335
     336#ifndef DEBUG /* Makes debugging easier to have a deterministic directory. */
    337337    char szTime[64];
    338338    RTTIMESPEC time;
     
    347347    rc = RTPathAppend(pszPath, cbPath, szTime);
    348348    AssertRCReturn(rc, rc);
     349#endif
    349350
    350351    return RTDirCreateFullPath(pszPath, RTFS_UNIX_IRWXU);
     
    431432
    432433    /** @todo Keep it as simple as possible for now. Improve this later. */
    433     int rc = audioTestManifestWrite(pSet, "[%N]", pszSection, &va);
     434    int rc = audioTestManifestWrite(pSet, "[%N]\n", pszSection, &va);
    434435
    435436    va_end(va);
     
    968969    rc = audioTestManifestWrite(pSet, "test_type=%RU32\n", pParms->enmType);
    969970    AssertRCReturn(rc, rc);
    970     rc = audioTestManifestWrite(pSet, "test_iterations=%RU32\n", pParms->cIterations);
    971     AssertRCReturn(rc, rc);
    972971    rc = audioTestManifestWrite(pSet, "test_delay_ms=%RU32\n", pParms->msDelay);
    973972    AssertRCReturn(rc, rc);
     
    977976    switch (pParms->enmType)
    978977    {
    979         case AUDIOTESTTYPE_TESTTONE:
     978        case AUDIOTESTTYPE_TESTTONE_PLAY:
     979            RT_FALL_THROUGH();
     980        case AUDIOTESTTYPE_TESTTONE_RECORD:
    980981        {
     982            rc = audioTestManifestWrite(pSet, "tone_freq_hz=%RU16\n", (uint16_t)pParms->TestTone.dbFreqHz);
     983            AssertRCReturn(rc, rc);
    981984            rc = audioTestManifestWrite(pSet, "tone_prequel_ms=%RU32\n", pParms->TestTone.msPrequel);
    982985            AssertRCReturn(rc, rc);
  • trunk/src/VBox/Devices/Audio/AudioTest.h

    r89294 r89308  
    8080    /** Tone frequency (in Hz) to use.
    8181     *  Will be later converted to a double value. */
    82     uint16_t         uFreq;
     82    double           dbFreqHz;
    8383    /** Prequel (in ms) to play silence. Optional and can be set to 0. */
    8484    RTMSINTERVAL     msPrequel;
     
    117117    AUDIOTESTTYPE_INVALID = 0,
    118118    /** Play a test tone. */
    119     AUDIOTESTTYPE_TESTTONE,
     119    AUDIOTESTTYPE_TESTTONE_PLAY,
     120    /** Record a test tone. */
     121    AUDIOTESTTYPE_TESTTONE_RECORD,
    120122        /** The usual 32-bit hack. */
    121123    AUDIOTESTTYPE_32BIT_HACK = 0x7fffffff
     
    131133    /** How many iterations the test should be executed. */
    132134    uint32_t                cIterations;
     135    /** PCM audio stream properties to use. */
     136    PDMAUDIOPCMPROPS        Props;
    133137    /** Audio device to use. */
    134138    PDMAUDIOHOSTDEV         Dev;
  • trunk/src/VBox/Devices/Audio/AudioTestServiceProtocol.h

    r89294 r89308  
    135135    /** Test tone parameters for playback. */
    136136    AUDIOTESTTONEPARMS ToneParms;
    137     uint8_t            aPadding[12];
     137    uint8_t            aPadding[4];
    138138} ATSPKTREQTONEPLAY;
    139139AssertCompileSizeAlignment(ATSPKTREQTONEPLAY, ATSPKT_ALIGNMENT);
  • trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp

    r89294 r89308  
    149149    memcpy(&pTestData->t.TestTone.Parms, pToneParms, sizeof(AUDIOTESTTONEPARMS));
    150150
    151     AudioTestToneInit(&pTestData->t.TestTone.Tone, &pStreamCfg->Props, pTestData->t.TestTone.Parms.uFreq);
     151    AudioTestToneInit(&pTestData->t.TestTone.Tone, &pStreamCfg->Props, pTestData->t.TestTone.Parms.dbFreqHz);
    152152
    153153    pTestData->t.TestTone.cbToWrite = PDMAudioPropsMilliToBytes(&pStreamCfg->Props,
  • trunk/src/VBox/ValidationKit/utils/audio/vkat.cpp

    r89297 r89308  
    16811681{
    16821682    AUDIOTESTTONE TstTone;
    1683     AudioTestToneInitRandom(&TstTone, &pParms->Props);
     1683    AudioTestToneInit(&TstTone, &pParms->Props, pParms->dbFreqHz);
    16841684
    16851685    const char *pcszPathOut = pTstEnv->Set.szPathAbs;
    16861686
    1687     RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Playing test tone (tone frequency is %RU16Hz, %RU32ms)\n", TstTone.rdFreqHz, pParms->msDuration);
     1687    RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "Playing test tone (tone frequency is %RU16Hz, %RU32ms)\n", (uint16_t)pParms->dbFreqHz, pParms->msDuration);
    16881688    RTTestPrintf(g_hTest, RTTESTLVL_DEBUG,  "Writing to '%s'\n", pcszPathOut);
    16891689
     
    17661766    RT_NOREF(pTstEnv, pTstDesc, ppvCtx);
    17671767
    1768     pTstParmsAcq->enmType     = AUDIOTESTTYPE_TESTTONE;
    1769 
    1770     PDMAudioPropsInit(&pTstParmsAcq->TestTone.Props, 16 /* bit */ / 8, true /* fSigned */, 2 /* Channels */, 44100 /* Hz */);
     1768    pTstParmsAcq->enmType     = AUDIOTESTTYPE_TESTTONE_PLAY;
     1769
     1770    PDMAudioPropsInit(&pTstParmsAcq->Props, 16 /* bit */ / 8, true /* fSigned */, 2 /* Channels */, 44100 /* Hz */);
    17711771
    17721772    pTstParmsAcq->enmDir      = PDMAUDIODIR_OUT;
     
    17931793    for (uint32_t i = 0; i < pTstParms->cIterations; i++)
    17941794    {
     1795        AudioTestToneParamsInitRandom(&pTstParms->TestTone, &pTstParms->Props);
     1796
    17951797        PAUDIOTESTENTRY pTst;
    17961798        rc = AudioTestSetTestBegin(&pTstEnv->Set, "Playing test tone", pTstParms, &pTst);
    17971799        if (RT_SUCCESS(rc))
    17981800        {
    1799             AudioTestToneParamsInitRandom(&pTstParms->TestTone, &pTstParms->TestTone.Props);
    18001801            rc = audioTestCreateStreamDefaultOut(pTstEnv, pStream, &pTstParms->TestTone.Props);
    18011802            if (RT_SUCCESS(rc))
     
    18401841    RT_NOREF(pTstEnv, pTstDesc, ppvCtx);
    18411842
    1842     pTstParmsAcq->enmType     = AUDIOTESTTYPE_TESTTONE;
    1843 
     1843    pTstParmsAcq->enmType     = AUDIOTESTTYPE_TESTTONE_RECORD;
     1844
     1845    RT_ZERO(pTstParmsAcq->TestTone);
    18441846    PDMAudioPropsInit(&pTstParmsAcq->TestTone.Props, 16 /* bit */ / 8, true /* fSigned */, 2 /* Channels */, 44100 /* Hz */);
    18451847
     
    18641866    for (uint32_t i = 0; i < pTstParms->cIterations; i++)
    18651867    {
     1868        pTstParms->TestTone.msDuration = RTRandU32Ex(50 /* ms */, RT_MS_10SEC); /** @todo Record even longer? */
     1869
    18661870        PAUDIOTESTENTRY pTst;
    18671871        rc = AudioTestSetTestBegin(&pTstEnv->Set, "Recording test tone", pTstParms, &pTst);
     
    18711875            rc = audioTestCreateStreamDefaultIn(pTstEnv, pStream, &pTstParms->TestTone.Props);
    18721876            if (RT_SUCCESS(rc))
    1873             {
    1874                 pTstParms->TestTone.msDuration = RTRandU32Ex(50 /* ms */, RT_MS_10SEC); /** @todo Record even longer? */
    1875 
    18761877                rc = audioTestRecordTone(pTstEnv, pStream, &pTstParms->TestTone);
    1877             }
    18781878
    18791879            int rc2 = audioTestStreamDestroy(pTstEnv, pStream);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette