VirtualBox

儲存庫 vbox 的更動 65412


忽略:
時間撮記:
2017-1-24 上午10:20:58 (8 年 以前)
作者:
vboxsync
訊息:

VideoRec: Renaming.

位置:
trunk/src/VBox/Main/src-client
檔案:
修改 3 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Main/src-client/DisplayImpl.cpp

    r65410 r65412  
    23012301        return VINF_SUCCESS;
    23022302
    2303     return VideoRecSendAudio(mpVideoRecCtx, pvData, cbData, uTimestampMs);
     2303    return VideoRecSendAudioFrame(mpVideoRecCtx, pvData, cbData, uTimestampMs);
    23042304#else
    23052305    RT_NOREF(pvData, cbData, uTimestampMs);
     
    32413241                                                                    &bitmapFormat);
    32423242                        if (SUCCEEDED(hr) && pbAddress)
    3243                             rc = VideoRecCopyToIntBuf(pDisplay->mpVideoRecCtx, uScreenId, 0, 0,
    3244                                                       BitmapFormat_BGR,
    3245                                                       ulBitsPerPixel, ulBytesPerLine, ulWidth, ulHeight,
    3246                                                       pbAddress, u64Now);
     3243                            rc = VideoRecSendVideoFrame(pDisplay->mpVideoRecCtx, uScreenId, 0, 0,
     3244                                                        BitmapFormat_BGR,
     3245                                                        ulBitsPerPixel, ulBytesPerLine, ulWidth, ulHeight,
     3246                                                        pbAddress, u64Now);
    32473247                        else
    32483248                            rc = VERR_NOT_SUPPORTED;
     
    36293629    Assert(mfCrOglVideoRecState == CRVREC_STATE_SUBMITTED);
    36303630# ifdef VBOX_WITH_VIDEOREC
    3631     int rc = VideoRecCopyToIntBuf(mpVideoRecCtx, uScreen, x, y,
    3632                                   uPixelFormat,
    3633                                   uBitsPerPixel, uBytesPerLine,
    3634                                   uGuestWidth, uGuestHeight,
    3635                                   pu8BufferAddress, u64Timestamp);
     3631    int rc = VideoRecSendVideoFrame(mpVideoRecCtx, uScreen, x, y,
     3632                                    uPixelFormat,
     3633                                    uBitsPerPixel, uBytesPerLine,
     3634                                    uGuestWidth, uGuestHeight,
     3635                                    pu8BufferAddress, u64Timestamp);
    36363636    NOREF(rc);
    36373637    Assert(rc == VINF_SUCCESS /* || rc == VERR_TRY_AGAIN || rc == VINF_TRY_AGAIN*/);
  • trunk/src/VBox/Main/src-client/VideoRec.cpp

    r65410 r65412  
    119119    uint16_t            uScreen;
    120120    /** Target X resolution (in pixels). */
    121     uint32_t            uTargetWidth;
     121    uint32_t            uDstWidth;
    122122    /** Target Y resolution (in pixels). */
    123     uint32_t            uTargetHeight;
     123    uint32_t            uDstHeight;
    124124    /** X resolution of the last encoded frame. */
    125     uint32_t            uLastSourceWidth;
     125    uint32_t            uSrcLastWidth;
    126126    /** Y resolution of the last encoded frame. */
    127     uint32_t            uLastSourceHeight;
     127    uint32_t            uSrcLastHeight;
    128128    /** Current frame number. */
    129129    uint64_t            cFrame;
     
    699699    pCtx->uMaxSizeMB = uMaxSizeMB;
    700700
    701     pStream->uTargetWidth  = uWidth;
    702     pStream->uTargetHeight = uHeight;
     701    pStream->uDstWidth  = uWidth;
     702    pStream->uDstHeight = uHeight;
    703703    pStream->pu8RgbBuf = (uint8_t *)RTMemAllocZ(uWidth * uHeight * 4);
    704704    AssertReturn(pStream->pu8RgbBuf, VERR_NO_MEMORY);
     
    10131013        case VIDEORECPIXELFMT_RGB32:
    10141014            LogFlow(("32 bit\n"));
    1015             if (!colorConvWriteYUV420p<ColorConvBGRA32Iter>(pStrm->uTargetWidth,
    1016                                                             pStrm->uTargetHeight,
     1015            if (!colorConvWriteYUV420p<ColorConvBGRA32Iter>(pStrm->uDstWidth,
     1016                                                            pStrm->uDstHeight,
    10171017                                                            pStrm->pu8YuvBuf,
    10181018                                                            pStrm->pu8RgbBuf))
     
    10211021        case VIDEORECPIXELFMT_RGB24:
    10221022            LogFlow(("24 bit\n"));
    1023             if (!colorConvWriteYUV420p<ColorConvBGR24Iter>(pStrm->uTargetWidth,
    1024                                                            pStrm->uTargetHeight,
     1023            if (!colorConvWriteYUV420p<ColorConvBGR24Iter>(pStrm->uDstWidth,
     1024                                                           pStrm->uDstHeight,
    10251025                                                           pStrm->pu8YuvBuf,
    10261026                                                           pStrm->pu8RgbBuf))
     
    10291029        case VIDEORECPIXELFMT_RGB565:
    10301030            LogFlow(("565 bit\n"));
    1031             if (!colorConvWriteYUV420p<ColorConvBGR565Iter>(pStrm->uTargetWidth,
    1032                                                             pStrm->uTargetHeight,
     1031            if (!colorConvWriteYUV420p<ColorConvBGR565Iter>(pStrm->uDstWidth,
     1032                                                            pStrm->uDstHeight,
    10331033                                                            pStrm->pu8YuvBuf,
    10341034                                                            pStrm->pu8RgbBuf))
     
    10411041}
    10421042
    1043 int VideoRecSendAudio(PVIDEORECCONTEXT pCtx, const void *pvData, size_t cbData, uint64_t uTimestampMs)
     1043int VideoRecSendAudioFrame(PVIDEORECCONTEXT pCtx, const void *pvData, size_t cbData, uint64_t uTimestampMs)
    10441044{
    10451045    RT_NOREF(pCtx, pvData, cbData, uTimestampMs);
     
    10611061 * @param   uBitsPerPixel      Bits Per Pixel
    10621062 * @param   uBytesPerLine      Bytes per source scanlineName.
    1063  * @param   uSourceWidth       Width of the source image (framebuffer).
    1064  * @param   uSourceHeight      Height of the source image (framebuffer).
    1065  * @param   pu8BufAddr         Pointer to source image(framebuffer).
     1063 * @param   uSrcWidth          Width of the source frame.
     1064 * @param   uSrcHeight         Height of the source frame.
     1065 * @param   puSrcData          Pointer to source frame data.
    10661066 * @param   u64TimeStampMs     Time stamp (in ms).
    10671067 */
    1068 int VideoRecCopyToIntBuf(PVIDEORECCONTEXT pCtx, uint32_t uScreen, uint32_t x, uint32_t y,
    1069                          uint32_t uPixelFormat, uint32_t uBitsPerPixel, uint32_t uBytesPerLine,
    1070                          uint32_t uSourceWidth, uint32_t uSourceHeight, uint8_t *pu8BufAddr,
    1071                          uint64_t uTimeStampMs)
     1068int VideoRecSendVideoFrame(PVIDEORECCONTEXT pCtx, uint32_t uScreen, uint32_t x, uint32_t y,
     1069                           uint32_t uPixelFormat, uint32_t uBitsPerPixel, uint32_t uBytesPerLine,
     1070                           uint32_t uSrcWidth, uint32_t uSrcHeight, uint8_t *puSrcData,
     1071                           uint64_t uTimeStampMs)
    10721072{
    10731073    /* Do not execute during termination and guard against termination */
     
    10781078    do
    10791079    {
    1080         AssertPtrBreakStmt(pCtx,       rc = VERR_INVALID_POINTER);
    1081         AssertPtrBreakStmt(pu8BufAddr, rc = VERR_INVALID_POINTER);
    1082         AssertBreakStmt(uSourceWidth,  rc = VERR_INVALID_PARAMETER);
    1083         AssertBreakStmt(uSourceHeight, rc = VERR_INVALID_PARAMETER);
     1080        AssertPtrBreakStmt(pCtx,      rc = VERR_INVALID_POINTER);
     1081        AssertBreakStmt(uSrcWidth,    rc = VERR_INVALID_PARAMETER);
     1082        AssertBreakStmt(uSrcHeight,   rc = VERR_INVALID_PARAMETER);
     1083        AssertPtrBreakStmt(puSrcData, rc = VERR_INVALID_POINTER);
    10841084
    10851085        PVIDEORECSTREAM pStream = videoRecStreamGet(pCtx, uScreen);
     
    11081108        pStream->uLastTimeStampMs = uTimeStampMs;
    11091109
    1110         int xDiff = ((int)pStream->uTargetWidth - (int)uSourceWidth) / 2;
    1111         uint32_t w = uSourceWidth;
     1110        int xDiff = ((int)pStream->uDstWidth - (int)uSrcWidth) / 2;
     1111        uint32_t w = uSrcWidth;
    11121112        if ((int)w + xDiff + (int)x <= 0)  /* nothing visible */
    11131113        {
     
    11261126            destX = x + xDiff;
    11271127
    1128         uint32_t h = uSourceHeight;
    1129         int yDiff = ((int)pStream->uTargetHeight - (int)uSourceHeight) / 2;
     1128        uint32_t h = uSrcHeight;
     1129        int yDiff = ((int)pStream->uDstHeight - (int)uSrcHeight) / 2;
    11301130        if ((int)h + yDiff + (int)y <= 0)  /* nothing visible */
    11311131        {
     
    11441144            destY = y + yDiff;
    11451145
    1146         if (   destX > pStream->uTargetWidth
    1147             || destY > pStream->uTargetHeight)
     1146        if (   destX > pStream->uDstWidth
     1147            || destY > pStream->uDstHeight)
    11481148        {
    11491149            rc = VERR_INVALID_PARAMETER;  /* nothing visible */
     
    11511151        }
    11521152
    1153         if (destX + w > pStream->uTargetWidth)
    1154             w = pStream->uTargetWidth - destX;
    1155 
    1156         if (destY + h > pStream->uTargetHeight)
    1157             h = pStream->uTargetHeight - destY;
     1153        if (destX + w > pStream->uDstWidth)
     1154            w = pStream->uDstWidth - destX;
     1155
     1156        if (destY + h > pStream->uDstHeight)
     1157            h = pStream->uDstHeight - destY;
    11581158
    11591159        /* Calculate bytes per pixel */
     
    11851185        /* One of the dimensions of the current frame is smaller than before so
    11861186         * clear the entire buffer to prevent artifacts from the previous frame */
    1187         if (   uSourceWidth  < pStream->uLastSourceWidth
    1188             || uSourceHeight < pStream->uLastSourceHeight)
    1189             memset(pStream->pu8RgbBuf, 0, pStream->uTargetWidth * pStream->uTargetHeight * 4);
    1190 
    1191         pStream->uLastSourceWidth  = uSourceWidth;
    1192         pStream->uLastSourceHeight = uSourceHeight;
     1187        if (   uSrcWidth  < pStream->uSrcLastWidth
     1188            || uSrcHeight < pStream->uSrcLastHeight)
     1189            memset(pStream->pu8RgbBuf, 0, pStream->uDstWidth * pStream->uDstHeight * 4);
     1190
     1191        pStream->uSrcLastWidth  = uSrcWidth;
     1192        pStream->uSrcLastHeight = uSrcHeight;
    11931193
    11941194        /* Calculate start offset in source and destination buffers */
    11951195        uint32_t offSrc = y * uBytesPerLine + x * bpp;
    1196         uint32_t offDst = (destY * pStream->uTargetWidth + destX) * bpp;
     1196        uint32_t offDst = (destY * pStream->uDstWidth + destX) * bpp;
    11971197        /* do the copy */
    11981198        for (unsigned int i = 0; i < h; i++)
    11991199        {
    12001200            /* Overflow check */
    1201             Assert(offSrc + w * bpp <= uSourceHeight * uBytesPerLine);
    1202             Assert(offDst + w * bpp <= pStream->uTargetHeight * pStream->uTargetWidth * bpp);
    1203             memcpy(pStream->pu8RgbBuf + offDst, pu8BufAddr + offSrc, w * bpp);
     1201            Assert(offSrc + w * bpp <= uSrcHeight * uBytesPerLine);
     1202            Assert(offDst + w * bpp <= pStream->uDstHeight * pStream->uDstWidth * bpp);
     1203            memcpy(pStream->pu8RgbBuf + offDst, puSrcData + offSrc, w * bpp);
    12041204            offSrc += uBytesPerLine;
    1205             offDst += pStream->uTargetWidth * bpp;
     1205            offDst += pStream->uDstWidth * bpp;
    12061206        }
    12071207
  • trunk/src/VBox/Main/src-client/VideoRec.h

    r65410 r65412  
    3333
    3434bool VideoRecIsEnabled(PVIDEORECCONTEXT pCtx);
    35 int  VideoRecSendAudio(PVIDEORECCONTEXT pCtx, const void *pvData, size_t cbData, uint64_t uTimestampMs);
    36 int  VideoRecCopyToIntBuf(PVIDEORECCONTEXT pCtx, uint32_t uScreen,
    37                           uint32_t x, uint32_t y, uint32_t uPixelFormat, uint32_t uBitsPerPixel,
    38                           uint32_t uBytesPerLine, uint32_t uGuestWidth, uint32_t uGuestHeight,
    39                           uint8_t *pu8BufferAddress, uint64_t u64TimeStampMs);
     35int  VideoRecSendAudioFrame(PVIDEORECCONTEXT pCtx, const void *pvData, size_t cbData, uint64_t uTimestampMs);
     36int  VideoRecSendVideoFrame(PVIDEORECCONTEXT pCtx, uint32_t uScreen,
     37                            uint32_t x, uint32_t y, uint32_t uPixelFormat, uint32_t uBitsPerPixel,
     38                            uint32_t uBytesPerLine, uint32_t uGuestWidth, uint32_t uGuestHeight,
     39                            uint8_t *pu8BufferAddress, uint64_t u64TimeStampMs);
    4040bool VideoRecIsReady(PVIDEORECCONTEXT pCtx, uint32_t uScreen, uint64_t u64TimeStampMs);
    4141bool VideoRecLimitReached(PVIDEORECCONTEXT pCtx, uint32_t uScreen, uint64_t u64TimeStampMs);
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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