VirtualBox

Changeset 89417 in vbox for trunk/src/VBox/ValidationKit


Ignore:
Timestamp:
May 31, 2021 8:58:14 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144770
Message:

ValKit/AudioTest: DrvAudio doesn't do any push back worth speaking of if the device hasn't finished initializing the stream, so pace ourselves a little when playing. Reduced unnecessary includes in the driver stack file. bugref:10008

Location:
trunk/src/VBox/ValidationKit/utils/audio
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/utils/audio/vkat.cpp

    r89413 r89417  
    16041604                if (RT_SUCCESS(rc))
    16051605                {
    1606                     uint64_t const  nsStarted = RTTimeNanoTS();
     1606                    uint32_t const  cbPreBuffer = PDMAudioPropsFramesToBytes(&pStream->Props, CfgAcq.Backend.cFramesPreBuffering);
     1607                    uint64_t const  nsStarted   = RTTimeNanoTS();
    16071608
    16081609                    /*
     
    16111612                    uint8_t         abSamples[16384];
    16121613                    uint32_t const  cbSamplesAligned = PDMAudioPropsFloorBytesToFrame(&pStream->Props, sizeof(abSamples));
     1614                    uint64_t        offStream        = 0;
    16131615                    for (;;)
    16141616                    {
     
    16181620                        if (RT_SUCCESS(rc) && cbSamples > 0)
    16191621                        {
     1622                            /* Pace ourselves a little. */
     1623                            if (offStream >= cbPreBuffer)
     1624                            {
     1625                                uint64_t const cNsWritten = PDMAudioPropsBytesToNano64(&pStream->Props, offStream);
     1626                                uint64_t const cNsElapsed = RTTimeNanoTS() - nsStarted;
     1627                                if (cNsWritten + RT_NS_10MS > cNsElapsed)
     1628                                    RTThreadSleep((cNsWritten - cNsElapsed - RT_NS_10MS / 2) / RT_NS_1MS);
     1629                            }
     1630
    16201631                            /* Transfer the data to the audio stream. */
    16211632                            for (uint32_t offSamples = 0; offSamples < cbSamples;)
     
    16311642                                    {
    16321643                                        if (cbPlayed)
     1644                                        {
    16331645                                            offSamples += cbPlayed;
     1646                                            offStream  += cbPlayed;
     1647                                        }
    16341648                                        else
    16351649                                        {
  • trunk/src/VBox/ValidationKit/utils/audio/vkatDriverStack.cpp

    r89401 r89417  
    2929*   Header Files                                                                                                                 *
    3030*********************************************************************************************************************************/
    31 #include <iprt/buildconfig.h>
    32 #include <iprt/ctype.h>
    33 #include <iprt/dir.h>
    3431#include <iprt/errcore.h>
    35 #include <iprt/initterm.h>
    36 #include <iprt/getopt.h>
    3732#include <iprt/message.h>
    38 #include <iprt/path.h>
    39 #include <iprt/process.h>
    40 #include <iprt/rand.h>
    4133#include <iprt/stream.h>
    4234#include <iprt/string.h>
     
    4436#include <iprt/test.h>
    4537
    46 #include <package-generated.h>
    47 #include "product-generated.h"
    48 
    49 #include <VBox/version.h>
    50 #include <VBox/log.h>
    51 
    52 #ifdef RT_OS_WINDOWS
    53 # include <iprt/win/windows.h> /* for CoInitializeEx */
    54 #endif
    5538
    5639/**
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