Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int sceMpegBaseCscVme(ScePVoid pRGBbuffer, ScePVoid pRGBbuffer2, SceInt32 width, SceMpegYCrCbBuffer *pYCrCbBuffer)
- {
- uint uVar1;
- int ret;
- uint uVar2;
- uint uVar3;
- uint width1;
- int in_k1;
- uVar1 = in_k1 << 0xb;
- if (-1 < (int)(((uint)&pYCrCbBuffer->iFrameHeight | (uint)pYCrCbBuffer) & uVar1)) {
- ret = pYCrCbBuffer->iFrameBufferWidth16;
- uVar3 = pYCrCbBuffer->iFrameBufferHeight16 * ret * 0x80;
- uVar2 = uVar3 >> 2;
- width1 = width;
- if (width == 0) {
- width1 = DAT_000006e8;
- }
- if (width1 < (uint)(ret << 4)) {
- return -0x7ffffe02;
- }
- width1 = width1 * ret * 4;
- if ((((((-1 < (int)(uVar1 & ((uint)((int)pYCrCbBuffer->pYBuffer + uVar3) |
- (uint)pYCrCbBuffer->pYBuffer | uVar3))) &&
- (-1 < (int)(uVar1 & ((uint)((int)pYCrCbBuffer->pYBuffer2 + uVar3) |
- (uint)pYCrCbBuffer->pYBuffer2 | uVar3)))) &&
- (-1 < (int)(((int)pYCrCbBuffer->pCrBuffer + uVar2 | (uint)pYCrCbBuffer->pCrBuffer) &
- uVar1))) &&
- ((-1 < (int)(((int)pYCrCbBuffer->pCbBuffer + uVar2 | (uint)pYCrCbBuffer->pCbBuffer) &
- uVar1) &&
- (-1 < (int)(((int)pYCrCbBuffer->pCrBuffer2 + uVar2 | (uint)pYCrCbBuffer->pCrBuffer2) &
- uVar1))))) &&
- ((-1 < (int)(((int)pYCrCbBuffer->pCbBuffer2 + uVar2 | (uint)pYCrCbBuffer->pCbBuffer2) &
- uVar1) &&
- (-1 < (int)(uVar1 & ((uint)((int)pRGBbuffer + width1) | (uint)pRGBbuffer | width1))))))
- && ((pRGBbuffer2 == (ScePVoid)0x0 ||
- (-1 < (int)(uVar1 & ((uint)((int)pRGBbuffer2 + width1) | (uint)pRGBbuffer2 | width1))
- )))) {
- ret = trigger_dmacplus_memcpy4((int)DAT_000006e6,width,0);
- if (ret == 0) {
- ret = trigger_dmacplus_memcpy3(pRGBbuffer,pRGBbuffer2,pYCrCbBuffer);
- }
- sceKernelUnlockMutex(g_SceMpegBaseCSC_mutex,1);
- return ret;
- }
- }
- return -0x7fffffdd;
- }
- void trigger_dmacplus_memcpy4(int param_1,int param_2,int param_3)
- {
- uint ret;
- if (param_2 == 0) {
- param_2 = DAT_000006e8;
- }
- if (param_3 == 0) {
- param_3 = 0x6d0;
- }
- sceKernelLockMutex(g_SceMpegBaseCSC_mutex,1,0);
- while (ret = sceDmacplus_driver_0xB269EAC9_memcpy4(param_1,param_2,param_3), ret == 0x80000021)
- {
- sceDmacplus_driver_0xBF0DB45E_sceDmacplusAvcSync();
- }
- return;
- }
- int trigger_dmacplus_memcpy3(ScePVoid pRGBbuffer, ScePVoid pRGBbuffer2, SceMpegYCrCbBuffer *pYCrCbBuffer)
- {
- int iVar1;
- int iVar2;
- uint ret;
- iVar1 = sceKernelPollEventFlag(g_SceMpegBaseCSC_evflag,3,1,0);
- iVar2 = -0x7fffffff;
- if (-1 < iVar1) {
- do {
- ret = sceDmacplus_driver_0x9C492B9B(pRGBbuffer, pRGBbuffer2, pYCrCbBuffer);
- if ((ret != 0) && (ret != 0x80000021)) {
- return ret;
- }
- iVar2 = sceDmacplus_driver_0xBF0DB45E_sceDmacplusAvcSync();
- } while (ret != 0);
- }
- return iVar2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement