public virtual int sceVideocodecDelete() { if (videocodecDecoderThread != null) { videocodecDecoderThread.exit(); videocodecDecoderThread = null; } if (videoCodec != null) { videoCodec = null; } if (memoryInfo != null) { Modules.SysMemUserForUserModule.free(memoryInfo); memoryInfo = null; } if (edramInfo != null) { Modules.SysMemUserForUserModule.free(edramInfo); edramInfo = null; } Modules.ThreadManForUserModule.hleKernelDelayThread(videocodecDeleteDelay, false); return(0); }
public virtual int sceVideocodecOpen(TPointer buffer, int type) { TPointer buffer2 = buffer.getPointer(16); buffer.setValue32(0, 0x05100601); switch (type) { case 0: buffer.setValue32(8, 1); buffer.setValue32(24, VIDEOCODEC_OPEN_TYPE0_UNKNOWN24); buffer.setValue32(32, VIDEOCODEC_OPEN_TYPE0_UNKNOWN4); buffer2.setValue32(0, VIDEOCODEC_OPEN_TYPE0_UNKNOWN0); buffer2.setValue32(4, VIDEOCODEC_OPEN_TYPE0_UNKNOWN4); break; case 1: buffer.setValue32(8, 0); buffer.setValue32(24, VIDEOCODEC_OPEN_TYPE1_UNKNOWN24); buffer.setValue32(32, VIDEOCODEC_OPEN_TYPE1_UNKNOWN32); break; default: Console.WriteLine(string.Format("sceVideocodecOpen unknown type {0:D}", type)); return(-1); } if (videocodecDecoderThread == null) { videocodecDecoderThread = new VideocodecDecoderThread(this); videocodecDecoderThread.Daemon = true; videocodecDecoderThread.Name = "Videocodec Decoder Thread"; videocodecDecoderThread.Start(); } return(0); }