예제 #1
0
        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);
        }
예제 #2
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);
        }