mirror of
https://github.com/pspdev/pspsdk.git
synced 2025-12-31 04:37:25 +00:00
first commit
This commit is contained in:
62
src/mpeg/Makefile.am
Normal file
62
src/mpeg/Makefile.am
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
libdir = @PSPSDK_LIBDIR@
|
||||
|
||||
CC = @PSP_CC@
|
||||
CCAS = $(CC)
|
||||
AR = @PSP_AR@
|
||||
RANLIB = @PSP_RANLIB@
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/src/base -I$(top_srcdir)/src/kernel
|
||||
CFLAGS = @PSPSDK_CFLAGS@
|
||||
CCASFLAGS = $(CFLAGS) -I$(top_srcdir)/src/base -I$(top_srcdir)/src/kernel
|
||||
|
||||
MPEG_OBJS = sceMpeg_0000.o sceMpeg_0001.o sceMpeg_0002.o sceMpeg_0003.o sceMpeg_0004.o sceMpeg_0005.o sceMpeg_0006.o sceMpeg_0007.o sceMpeg_0008.o sceMpeg_0009.o sceMpeg_0010.o sceMpeg_0011.o sceMpeg_0012.o sceMpeg_0013.o sceMpeg_0014.o sceMpeg_0015.o sceMpeg_0016.o sceMpeg_0017.o sceMpeg_0018.o sceMpeg_0019.o sceMpeg_0020.o sceMpeg_0021.o sceMpeg_0022.o sceMpeg_0023.o sceMpeg_0024.o sceMpeg_0025.o sceMpeg_0026.o sceMpeg_0027.o sceMpeg_0028.o sceMpeg_0029.o sceMpeg_0030.o sceMpeg_0031.o sceMpeg_0032.o sceMpeg_0033.o sceMpeg_0034.o sceMpeg_0035.o sceMpeg_0036.o sceMpeg_0037.o sceMpeg_0038.o
|
||||
|
||||
MPEGBASE_OBJS = sceMpegbase_0000.o sceMpegbase_0001.o sceMpegbase_0002.o sceMpegbase_0003.o sceMpegbase_0004.o sceMpegbase_0005.o sceMpegbase_0006.o sceMpegbase_0007.o sceMpegbase_0008.o sceMpegbase_0009.o
|
||||
|
||||
MPEGBASE_DRIVER_OBJS = sceMpegbase_driver_0000.o sceMpegbase_driver_0001.o sceMpegbase_driver_0002.o sceMpegbase_driver_0003.o sceMpegbase_driver_0004.o sceMpegbase_driver_0005.o sceMpegbase_driver_0006.o sceMpegbase_driver_0007.o sceMpegbase_driver_0008.o sceMpegbase_driver_0009.o sceMpegbase_driver_0010.o
|
||||
|
||||
JPEG_OBJS = sceJpeg_0000.o sceJpeg_0001.o sceJpeg_0002.o sceJpeg_0003.o sceJpeg_0004.o sceJpeg_0005.o sceJpeg_0006.o sceJpeg_0007.o sceJpeg_0008.o sceJpeg_0009.o sceJpeg_0010.o sceJpeg_0011.o sceJpeg_0012.o sceJpeg_0013.o
|
||||
|
||||
|
||||
libpspmpegincludedir = @PSPSDK_INCLUDEDIR@
|
||||
libpspmpeginclude_HEADERS = pspmpeg.h
|
||||
|
||||
libpspmpegbaseincludedir = @PSPSDK_INCLUDEDIR@
|
||||
libpspmpegbaseinclude_HEADERS = pspmpegbase.h
|
||||
|
||||
libpspmpegbase_driverincludedir = @PSPSDK_INCLUDEDIR@
|
||||
libpspmpegbase_driverinclude_HEADERS = pspmpegbase.h
|
||||
|
||||
libpspjpegincludedir = @PSPSDK_INCLUDEDIR@
|
||||
libpspjpeginclude_HEADERS = pspjpeg.h
|
||||
|
||||
|
||||
lib_LIBRARIES = libpspmpeg.a libpspmpegbase.a libpspmpegbase_driver.a libpspjpeg.a
|
||||
|
||||
|
||||
libpspmpeg_a_SOURCES = sceMpeg.S
|
||||
libpspmpeg_a_LIBADD = $(MPEG_OBJS)
|
||||
|
||||
libpspmpegbase_a_SOURCES = sceMpegbase.S
|
||||
libpspmpegbase_a_LIBADD = $(MPEGBASE_OBJS)
|
||||
|
||||
libpspmpegbase_driver_a_SOURCES = sceMpegbase_driver.S
|
||||
libpspmpegbase_driver_a_LIBADD = $(MPEGBASE_DRIVER_OBJS)
|
||||
|
||||
libpspjpeg_a_SOURCES = sceJpeg.S
|
||||
libpspjpeg_a_LIBADD = $(JPEG_OBJS)
|
||||
|
||||
|
||||
$(MPEG_OBJS): sceMpeg.S
|
||||
$(COMPILE) -DF_$* $< -c -o $@
|
||||
|
||||
$(MPEGBASE_OBJS): sceMpegbase.S
|
||||
$(COMPILE) -DF_$* $< -c -o $@
|
||||
|
||||
$(MPEGBASE_DRIVER_OBJS): sceMpegbase_driver.S
|
||||
$(COMPILE) -DF_$* $< -c -o $@
|
||||
|
||||
$(JPEG_OBJS): sceJpeg.S
|
||||
$(COMPILE) -DF_$* $< -c -o $@
|
||||
|
||||
69
src/mpeg/pspjpeg.h
Executable file
69
src/mpeg/pspjpeg.h
Executable file
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* PSP Software Development Kit - http://www.pspdev.org
|
||||
* -----------------------------------------------------------------------
|
||||
* Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||||
*
|
||||
* pspjpeg.h - Prototypes for the sceJpeg library
|
||||
*
|
||||
* Copyright (c) 2007 dot_blank
|
||||
*
|
||||
* $Id: pspjpeg.h 2433 2008-10-15 10:00:27Z iwn $
|
||||
*/
|
||||
#ifndef __PSPJPEG_H__
|
||||
#define __PSPJPEG_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <psptypes.h>
|
||||
|
||||
/**
|
||||
* Inits the MJpeg library
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
int sceJpegInitMJpeg(void);
|
||||
|
||||
/**
|
||||
* Finishes the MJpeg library
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
int sceJpegFinishMJpeg(void);
|
||||
|
||||
/**
|
||||
* Creates the decoder context.
|
||||
*
|
||||
* @param width - The width of the frame
|
||||
* @param height - The height of the frame
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
int sceJpegCreateMJpeg(int width, int height);
|
||||
|
||||
/**
|
||||
* Deletes the current decoder context.
|
||||
*
|
||||
* @return 0 on success, < 0 on error
|
||||
*/
|
||||
int sceJpegDeleteMJpeg(void);
|
||||
|
||||
/**
|
||||
* Decodes a mjpeg frame.
|
||||
*
|
||||
* @param jpegbuf - the buffer with the mjpeg frame
|
||||
* @param size - size of the buffer pointed by jpegbuf
|
||||
* @param rgba - buffer where the decoded data in RGBA format will be stored.
|
||||
* It should have a size of (width * height * 4).
|
||||
* @param unk - Unknown, pass 0
|
||||
*
|
||||
* @return (width * 65536) + height on success, < 0 on error
|
||||
*/
|
||||
int sceJpegDecodeMJpeg(u8 *jpegbuf, SceSize size, void *rgba, u32 unk);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
344
src/mpeg/pspmpeg.h
Normal file
344
src/mpeg/pspmpeg.h
Normal file
@@ -0,0 +1,344 @@
|
||||
/*
|
||||
* PSP Software Development Kit - http://www.pspdev.org
|
||||
* -----------------------------------------------------------------------
|
||||
* Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||||
*
|
||||
* pspmpeg.h - Prototypes for the sceMpeg library
|
||||
*
|
||||
* Copyright (c) 2006 Sorin P. C. <magik@hypermagik.com>
|
||||
* Copyright (c) 2007 Alexander Berl <raphael@fx-world.org>
|
||||
*
|
||||
* $Id: pspmpeg.h 2433 2008-10-15 10:00:27Z iwn $
|
||||
*/
|
||||
|
||||
#ifndef __SCELIBMPEG_H__
|
||||
#define __SCELIBMPEG_H__
|
||||
|
||||
#include <psptypes.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** points to "LIBMPEG" */
|
||||
typedef ScePVoid SceMpeg;
|
||||
|
||||
/** some structure */
|
||||
typedef SceVoid SceMpegStream;
|
||||
|
||||
/** Ringbuffer callback */
|
||||
typedef SceInt32 (*sceMpegRingbufferCB)(ScePVoid pData, SceInt32 iNumPackets, ScePVoid pParam);
|
||||
|
||||
typedef struct SceMpegRingbuffer
|
||||
{
|
||||
/** packets */
|
||||
SceInt32 iPackets;
|
||||
|
||||
/** unknown */
|
||||
SceUInt32 iUnk0;
|
||||
/** unknown */
|
||||
SceUInt32 iUnk1;
|
||||
/** unknown */
|
||||
SceUInt32 iUnk2;
|
||||
/** unknown */
|
||||
SceUInt32 iUnk3;
|
||||
|
||||
/** pointer to data */
|
||||
ScePVoid pData;
|
||||
|
||||
/** ringbuffer callback */
|
||||
sceMpegRingbufferCB Callback;
|
||||
/** callback param */
|
||||
ScePVoid pCBparam;
|
||||
|
||||
/** unknown */
|
||||
SceUInt32 iUnk4;
|
||||
/** unknown */
|
||||
SceUInt32 iUnk5;
|
||||
/** mpeg id */
|
||||
SceMpeg pSceMpeg;
|
||||
|
||||
} SceMpegRingbuffer;
|
||||
|
||||
typedef struct SceMpegAu
|
||||
{
|
||||
/** presentation timestamp MSB */
|
||||
SceUInt32 iPtsMSB;
|
||||
/** presentation timestamp LSB */
|
||||
SceUInt32 iPts;
|
||||
/** decode timestamp MSB */
|
||||
SceUInt32 iDtsMSB;
|
||||
/** decode timestamp LSB */
|
||||
SceUInt32 iDts;
|
||||
/** Es buffer handle */
|
||||
SceUInt32 iEsBuffer;
|
||||
/** Au size */
|
||||
SceUInt32 iAuSize;
|
||||
|
||||
} SceMpegAu;
|
||||
|
||||
#define SCE_MPEG_AVC_FORMAT_DEFAULT -1
|
||||
#define SCE_MPEG_AVC_FORMAT_5650 0
|
||||
#define SCE_MPEG_AVC_FORMAT_5551 1
|
||||
#define SCE_MPEG_AVC_FORMAT_4444 2
|
||||
#define SCE_MPEG_AVC_FORMAT_8888 3
|
||||
|
||||
typedef struct SceMpegAvcMode
|
||||
{
|
||||
/** unknown, set to -1 */
|
||||
SceInt32 iUnk0;
|
||||
/** Decode pixelformat */
|
||||
SceInt32 iPixelFormat;
|
||||
|
||||
} SceMpegAvcMode;
|
||||
|
||||
/**
|
||||
* sceMpegInit
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegInit();
|
||||
|
||||
/**
|
||||
* sceMpegFinish
|
||||
*/
|
||||
SceVoid sceMpegFinish();
|
||||
|
||||
/**
|
||||
* sceMpegRingbufferQueryMemSize
|
||||
*
|
||||
* @param iPackets - number of packets in the ringbuffer
|
||||
*
|
||||
* @return < 0 if error else ringbuffer data size.
|
||||
*/
|
||||
SceInt32 sceMpegRingbufferQueryMemSize(SceInt32 iPackets);
|
||||
|
||||
/**
|
||||
* sceMpegRingbufferConstruct
|
||||
*
|
||||
* @param Ringbuffer - pointer to a sceMpegRingbuffer struct
|
||||
* @param iPackets - number of packets in the ringbuffer
|
||||
* @param pData - pointer to allocated memory
|
||||
* @param iSize - size of allocated memory, shoud be sceMpegRingbufferQueryMemSize(iPackets)
|
||||
* @param Callback - ringbuffer callback
|
||||
* @param pCBparam - param passed to callback
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegRingbufferConstruct(SceMpegRingbuffer* Ringbuffer, SceInt32 iPackets, ScePVoid pData, SceInt32 iSize, sceMpegRingbufferCB Callback, ScePVoid pCBparam);
|
||||
|
||||
/**
|
||||
* sceMpegRingbufferDestruct
|
||||
*
|
||||
* @param Ringbuffer - pointer to a sceMpegRingbuffer struct
|
||||
*/
|
||||
SceVoid sceMpegRingbufferDestruct(SceMpegRingbuffer* Ringbuffer);
|
||||
|
||||
/**
|
||||
* sceMpegQueryMemSize
|
||||
*
|
||||
* @param Ringbuffer - pointer to a sceMpegRingbuffer struct
|
||||
*
|
||||
* @return < 0 if error else number of free packets in the ringbuffer.
|
||||
*/
|
||||
SceInt32 sceMpegRingbufferAvailableSize(SceMpegRingbuffer* Ringbuffer);
|
||||
|
||||
/**
|
||||
* sceMpegRingbufferPut
|
||||
*
|
||||
* @param Ringbuffer - pointer to a sceMpegRingbuffer struct
|
||||
* @param iNumPackets - num packets to put into the ringbuffer
|
||||
* @param iAvailable - free packets in the ringbuffer, should be sceMpegRingbufferAvailableSize()
|
||||
*
|
||||
* @return < 0 if error else number of packets.
|
||||
*/
|
||||
SceInt32 sceMpegRingbufferPut(SceMpegRingbuffer* Ringbuffer, SceInt32 iNumPackets, SceInt32 iAvailable);
|
||||
|
||||
/**
|
||||
* sceMpegQueryMemSize
|
||||
*
|
||||
* @param iUnk - Unknown, set to 0
|
||||
*
|
||||
* @return < 0 if error else decoder data size.
|
||||
*/
|
||||
SceInt32 sceMpegQueryMemSize(int iUnk);
|
||||
|
||||
/**
|
||||
* sceMpegCreate
|
||||
*
|
||||
* @param Mpeg - will be filled
|
||||
* @param pData - pointer to allocated memory of size = sceMpegQueryMemSize()
|
||||
* @param iSize - size of data, should be = sceMpegQueryMemSize()
|
||||
* @param Ringbuffer - a ringbuffer
|
||||
* @param iFrameWidth - display buffer width, set to 512 if writing to framebuffer
|
||||
* @param iUnk1 - unknown, set to 0
|
||||
* @param iUnk2 - unknown, set to 0
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegCreate(SceMpeg* Mpeg, ScePVoid pData, SceInt32 iSize, SceMpegRingbuffer* Ringbuffer, SceInt32 iFrameWidth, SceInt32 iUnk1, SceInt32 iUnk2);
|
||||
|
||||
/**
|
||||
* sceMpegDelete
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
*/
|
||||
SceVoid sceMpegDelete(SceMpeg* Mpeg);
|
||||
|
||||
/**
|
||||
* sceMpegQueryStreamOffset
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param pBuffer - pointer to file header
|
||||
* @param iOffset - will contain stream offset in bytes, usually 2048
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegQueryStreamOffset(SceMpeg* Mpeg, ScePVoid pBuffer, SceInt32* iOffset);
|
||||
|
||||
/**
|
||||
* sceMpegQueryStreamSize
|
||||
*
|
||||
* @param pBuffer - pointer to file header
|
||||
* @param iSize - will contain stream size in bytes
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegQueryStreamSize(ScePVoid pBuffer, SceInt32* iSize);
|
||||
|
||||
/**
|
||||
* sceMpegRegistStream
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param iStreamID - stream id, 0 for video, 1 for audio
|
||||
* @param iUnk - unknown, set to 0
|
||||
*
|
||||
* @return 0 if error.
|
||||
*/
|
||||
SceMpegStream* sceMpegRegistStream(SceMpeg* Mpeg, SceInt32 iStreamID, SceInt32 iUnk);
|
||||
|
||||
/**
|
||||
* sceMpegUnRegistStream
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param pStream - pointer to stream
|
||||
*/
|
||||
SceVoid sceMpegUnRegistStream(SceMpeg Mpeg, SceMpegStream* pStream);
|
||||
|
||||
/**
|
||||
* sceMpegFlushAllStreams
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegFlushAllStream(SceMpeg* Mpeg);
|
||||
|
||||
/**
|
||||
* sceMpegMallocAvcEsBuf
|
||||
*
|
||||
* @return 0 if error else pointer to buffer.
|
||||
*/
|
||||
ScePVoid sceMpegMallocAvcEsBuf(SceMpeg* Mpeg);
|
||||
|
||||
/**
|
||||
* sceMpegFreeAvcEsBuf
|
||||
*
|
||||
*/
|
||||
SceVoid sceMpegFreeAvcEsBuf(SceMpeg* Mpeg, ScePVoid pBuf);
|
||||
|
||||
/**
|
||||
* sceMpegQueryAtracEsSize
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param iEsSize - will contain size of Es
|
||||
* @param iOutSize - will contain size of decoded data
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegQueryAtracEsSize(SceMpeg* Mpeg, SceInt32* iEsSize, SceInt32* iOutSize);
|
||||
|
||||
/**
|
||||
* sceMpegInitAu
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param pEsBuffer - prevously allocated Es buffer
|
||||
* @param pAu - will contain pointer to Au
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegInitAu(SceMpeg* Mpeg, ScePVoid pEsBuffer, SceMpegAu* pAu);
|
||||
|
||||
/**
|
||||
* sceMpegGetAvcAu
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param pStream - associated stream
|
||||
* @param pAu - will contain pointer to Au
|
||||
* @param iUnk - unknown
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegGetAvcAu(SceMpeg* Mpeg, SceMpegStream* pStream, SceMpegAu* pAu, SceInt32* iUnk);
|
||||
|
||||
/**
|
||||
* sceMpegAvcDecodeMode
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param pMode - pointer to SceMpegAvcMode struct defining the decode mode (pixelformat)
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegAvcDecodeMode(SceMpeg* Mpeg, SceMpegAvcMode* pMode);
|
||||
|
||||
/**
|
||||
* sceMpegAvcDecode
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param pAu - video Au
|
||||
* @param iFrameWidth - output buffer width, set to 512 if writing to framebuffer
|
||||
* @param pBuffer - buffer that will contain the decoded frame
|
||||
* @param iInit - will be set to 0 on first call, then 1
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegAvcDecode(SceMpeg* Mpeg, SceMpegAu* pAu, SceInt32 iFrameWidth, ScePVoid pBuffer, SceInt32* iInit);
|
||||
|
||||
/**
|
||||
* sceMpegAvcDecodeStop
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param iFrameWidth - output buffer width, set to 512 if writing to framebuffer
|
||||
* @param pBuffer - buffer that will contain the decoded frame
|
||||
* @param iStatus - frame number
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegAvcDecodeStop(SceMpeg* Mpeg, SceInt32 iFrameWidth, ScePVoid pBuffer, SceInt32* iStatus);
|
||||
|
||||
/**
|
||||
* sceMpegGetAtracAu
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param pStream - associated stream
|
||||
* @param pAu - will contain pointer to Au
|
||||
* @param pUnk - unknown
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegGetAtracAu(SceMpeg* Mpeg, SceMpegStream* pStream, SceMpegAu* pAu, ScePVoid pUnk);
|
||||
|
||||
/**
|
||||
* sceMpegAtracDecode
|
||||
*
|
||||
* @param Mpeg - SceMpeg handle
|
||||
* @param pAu - video Au
|
||||
* @param pBuffer - buffer that will contain the decoded frame
|
||||
* @param iInit - set this to 1 on first call
|
||||
*
|
||||
* @return 0 if success.
|
||||
*/
|
||||
SceInt32 sceMpegAtracDecode(SceMpeg* Mpeg, SceMpegAu* pAu, ScePVoid pBuffer, SceInt32 iInit);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
66
src/mpeg/pspmpegbase.h
Executable file
66
src/mpeg/pspmpegbase.h
Executable file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* PSP Software Development Kit - http://www.pspdev.org
|
||||
* -----------------------------------------------------------------------
|
||||
* Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||||
*
|
||||
* pspmpegbase.h - Prototypes for the sceMpegbase library
|
||||
*
|
||||
* Copyright (c) 2006 Sorin P. C. <magik@hypermagik.com>
|
||||
* Copyright (c) 2007 cooleyes
|
||||
* Copyright (c) 2007 Alexander Berl <raphael@fx-world.org>
|
||||
*
|
||||
* $Id: pspmpegbase.h 2341 2007-12-06 20:05:52Z raphael $
|
||||
*/
|
||||
|
||||
#ifndef __SCELIBMPEGBASE_H__
|
||||
#define __SCELIBMPEGBASE_H__
|
||||
|
||||
|
||||
#include <psptypes.h>
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct SceMpegLLI
|
||||
{
|
||||
ScePVoid pSrc;
|
||||
ScePVoid pDst;
|
||||
ScePVoid Next;
|
||||
SceInt32 iSize;
|
||||
} __attribute__((aligned(64))) SceMpegLLI;
|
||||
|
||||
|
||||
|
||||
typedef struct SceMpegYCrCbBuffer
|
||||
{
|
||||
SceInt32 iFrameBufferHeight16;
|
||||
SceInt32 iFrameBufferWidth16;
|
||||
SceInt32 iUnknown; // Set to 0
|
||||
SceInt32 iUnknown2; // Set to 1
|
||||
ScePVoid pYBuffer; // pointer to YBuffer (in VME EDRAM?)
|
||||
ScePVoid pYBuffer2; // pointer to YBuffer + framebufferwidth*(frameheight/32)
|
||||
ScePVoid pCrBuffer; // pointer to CrBuffer (in VME EDRAM?)
|
||||
ScePVoid pCbBuffer; // pointer to CbBuffer (in VME EDRAM?)
|
||||
ScePVoid pCrBuffer2; // pointer to CrBuffer + (framebufferwidth/2)*(frameheight/64)
|
||||
ScePVoid pCbBuffer2; // pointer to CbBuffer + (framebufferwidth/2)*(frameheight/64)
|
||||
SceInt32 iFrameHeight;
|
||||
SceInt32 iFrameWidth;
|
||||
SceInt32 iFrameBufferWidth;
|
||||
SceInt32 iUnknown3[11];
|
||||
} __attribute__((aligned(64))) SceMpegYCrCbBuffer;
|
||||
|
||||
|
||||
SceInt32 sceMpegBaseYCrCbCopyVme(ScePVoid YUVBuffer, SceInt32 *Buffer, SceInt32 Type);
|
||||
SceInt32 sceMpegBaseCscInit(SceInt32 width);
|
||||
SceInt32 sceMpegBaseCscVme(ScePVoid pRGBbuffer, ScePVoid pRGBbuffer2, SceInt32 width, SceMpegYCrCbBuffer* pYCrCbBuffer);
|
||||
|
||||
SceInt32 sceMpegbase_BEA18F91(SceMpegLLI *pLLI);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
46
src/mpeg/sceJpeg.S
Executable file
46
src/mpeg/sceJpeg.S
Executable file
@@ -0,0 +1,46 @@
|
||||
.set noreorder
|
||||
|
||||
#include "pspimport.s"
|
||||
|
||||
#ifdef F_sceJpeg_0000
|
||||
IMPORT_START "sceJpeg",0x00090000
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0001
|
||||
IMPORT_FUNC "sceJpeg",0x0425B986,sceJpeg_0425B986
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0002
|
||||
IMPORT_FUNC "sceJpeg",0x04B5AE02,sceJpegMJpegCsc
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0003
|
||||
IMPORT_FUNC "sceJpeg",0x04B93CEF,sceJpegDecodeMJpeg
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0004
|
||||
IMPORT_FUNC "sceJpeg",0x227662D7,sceJpeg_227662D7
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0005
|
||||
IMPORT_FUNC "sceJpeg",0x48B602B7,sceJpegDeleteMJpeg
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0006
|
||||
IMPORT_FUNC "sceJpeg",0x64B6F978,sceJpeg_64B6F978
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0007
|
||||
IMPORT_FUNC "sceJpeg",0x67F0ED84,sceJpeg_67F0ED84
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0008
|
||||
IMPORT_FUNC "sceJpeg",0x7D2F3D7F,sceJpegFinishMJpeg
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0009
|
||||
IMPORT_FUNC "sceJpeg",0x8F2BB012,sceJpegGetOutputInfo
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0010
|
||||
IMPORT_FUNC "sceJpeg",0x91EED83C,sceJpegDecodeMJpegYCbCr
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0011
|
||||
IMPORT_FUNC "sceJpeg",0x9B36444C,sceJpeg_9B36444C
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0012
|
||||
IMPORT_FUNC "sceJpeg",0x9D47469C,sceJpegCreateMJpeg
|
||||
#endif
|
||||
#ifdef F_sceJpeg_0013
|
||||
IMPORT_FUNC "sceJpeg",0xAC9E70E6,sceJpegInitMJpeg
|
||||
#endif
|
||||
121
src/mpeg/sceMpeg.S
Normal file
121
src/mpeg/sceMpeg.S
Normal file
@@ -0,0 +1,121 @@
|
||||
.set noreorder
|
||||
|
||||
#include "pspimport.s"
|
||||
|
||||
#ifdef F_sceMpeg_0000
|
||||
IMPORT_START "sceMpeg",0x00090000
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0001
|
||||
IMPORT_FUNC "sceMpeg",0x21FF80E4,sceMpegQueryStreamOffset
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0002
|
||||
IMPORT_FUNC "sceMpeg",0x611E9E11,sceMpegQueryStreamSize
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0003
|
||||
IMPORT_FUNC "sceMpeg",0x682A619B,sceMpegInit
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0004
|
||||
IMPORT_FUNC "sceMpeg",0x874624D6,sceMpegFinish
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0005
|
||||
IMPORT_FUNC "sceMpeg",0xC132E22F,sceMpegQueryMemSize
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0006
|
||||
IMPORT_FUNC "sceMpeg",0xD8C5F121,sceMpegCreate
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0007
|
||||
IMPORT_FUNC "sceMpeg",0x606A4649,sceMpegDelete
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0008
|
||||
IMPORT_FUNC "sceMpeg",0x42560F23,sceMpegRegistStream
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0009
|
||||
IMPORT_FUNC "sceMpeg",0x591A4AA2,sceMpegUnRegistStream
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0010
|
||||
IMPORT_FUNC "sceMpeg",0xA780CF7E,sceMpegMallocAvcEsBuf
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0011
|
||||
IMPORT_FUNC "sceMpeg",0xCEB870B1,sceMpegFreeAvcEsBuf
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0012
|
||||
IMPORT_FUNC "sceMpeg",0xF8DCB679,sceMpegQueryAtracEsSize
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0013
|
||||
IMPORT_FUNC "sceMpeg",0xC02CF6B5,sceMpegQueryPcmEsSize
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0014
|
||||
IMPORT_FUNC "sceMpeg",0x167AFD9E,sceMpegInitAu
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0015
|
||||
IMPORT_FUNC "sceMpeg",0x234586AE,sceMpegChangeGetAvcAuMode
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0016
|
||||
IMPORT_FUNC "sceMpeg",0x9DCFB7EA,sceMpegChangeGetAuMode
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0017
|
||||
IMPORT_FUNC "sceMpeg",0xFE246728,sceMpegGetAvcAu
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0018
|
||||
IMPORT_FUNC "sceMpeg",0x8C1E027D,sceMpegGetPcmAu
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0019
|
||||
IMPORT_FUNC "sceMpeg",0xE1CE83A7,sceMpegGetAtracAu
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0020
|
||||
IMPORT_FUNC "sceMpeg",0x500F0429,sceMpegFlushStream
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0021
|
||||
IMPORT_FUNC "sceMpeg",0x707B7629,sceMpegFlushAllStream
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0022
|
||||
IMPORT_FUNC "sceMpeg",0x0E3C2E9D,sceMpegAvcDecode
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0023
|
||||
IMPORT_FUNC "sceMpeg",0x0F6C18D7,sceMpegAvcDecodeDetail
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0024
|
||||
IMPORT_FUNC "sceMpeg",0xA11C7026,sceMpegAvcDecodeMode
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0025
|
||||
IMPORT_FUNC "sceMpeg",0x740FCCD1,sceMpegAvcDecodeStop
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0026
|
||||
IMPORT_FUNC "sceMpeg",0x800C44DF,sceMpegAtracDecode
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0027
|
||||
IMPORT_FUNC "sceMpeg",0xD7A29F46,sceMpegRingbufferQueryMemSize
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0028
|
||||
IMPORT_FUNC "sceMpeg",0x37295ED8,sceMpegRingbufferConstruct
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0029
|
||||
IMPORT_FUNC "sceMpeg",0x13407F13,sceMpegRingbufferDestruct
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0030
|
||||
IMPORT_FUNC "sceMpeg",0xB240A59E,sceMpegRingbufferPut
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0031
|
||||
IMPORT_FUNC "sceMpeg",0xB5F6DC87,sceMpegRingbufferAvailableSize
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0032
|
||||
IMPORT_FUNC "sceMpeg",0x11CAB459,sceMpeg_11CAB459
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0033
|
||||
IMPORT_FUNC "sceMpeg",0x3C37A7A6,sceMpeg_3C37A7A6
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0034
|
||||
IMPORT_FUNC "sceMpeg",0xB27711A8,sceMpeg_B27711A8
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0035
|
||||
IMPORT_FUNC "sceMpeg",0xD4DD6E75,sceMpeg_D4DD6E75
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0036
|
||||
IMPORT_FUNC "sceMpeg",0xC345DED2,sceMpeg_C345DED2
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0037
|
||||
IMPORT_FUNC "sceMpeg",0xCF3547A2,sceMpegAvcDecodeDetail2
|
||||
#endif
|
||||
#ifdef F_sceMpeg_0038
|
||||
IMPORT_FUNC "sceMpeg",0x988E9E12,sceMpeg_988E9E12
|
||||
#endif
|
||||
34
src/mpeg/sceMpegbase.S
Executable file
34
src/mpeg/sceMpegbase.S
Executable file
@@ -0,0 +1,34 @@
|
||||
.set noreorder
|
||||
|
||||
#include "pspimport.s"
|
||||
|
||||
#ifdef F_sceMpegbase_0000
|
||||
IMPORT_START "sceMpegbase",0x00090000
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0001
|
||||
IMPORT_FUNC "sceMpegbase",0xBE45C284,sceMpegBaseYCrCbCopyVme
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0002
|
||||
IMPORT_FUNC "sceMpegbase",0x492B5E4B,sceMpegBaseCscInit
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0003
|
||||
IMPORT_FUNC "sceMpegbase",0xCE8EB837,sceMpegBaseCscVme
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0004
|
||||
IMPORT_FUNC "sceMpegbase",0x0530BE4E,sceMpegbase_0530BE4E
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0005
|
||||
IMPORT_FUNC "sceMpegbase",0x304882E1,sceMpegbase_304882E1
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0006
|
||||
IMPORT_FUNC "sceMpegbase",0x7AC0321A,sceMpegBaseYCrCbCopy
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0007
|
||||
IMPORT_FUNC "sceMpegbase",0x91929A21,sceMpegBaseCscAvc
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0008
|
||||
IMPORT_FUNC "sceMpegbase",0xAC9E717E,sceMpegbase_AC9E717E
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_0009
|
||||
IMPORT_FUNC "sceMpegbase",0xBEA18F91,sceMpegbase_BEA18F91
|
||||
#endif
|
||||
37
src/mpeg/sceMpegbase_driver.S
Executable file
37
src/mpeg/sceMpegbase_driver.S
Executable file
@@ -0,0 +1,37 @@
|
||||
.set noreorder
|
||||
|
||||
#include "pspimport.s"
|
||||
|
||||
#ifdef F_sceMpegbase_driver_0000
|
||||
IMPORT_START "sceMpegbase_driver",0x00010000
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0001
|
||||
IMPORT_FUNC "sceMpegbase_driver",0xBE45C284,sceMpegBaseYCrCbCopyVme
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0002
|
||||
IMPORT_FUNC "sceMpegbase_driver",0x492B5E4B,sceMpegBaseCscInit
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0003
|
||||
IMPORT_FUNC "sceMpegbase_driver",0xCE8EB837,sceMpegBaseCscVme
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0004
|
||||
IMPORT_FUNC "sceMpegbase_driver",0x0530BE4E,sceMpegbase_driver_0530BE4E
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0005
|
||||
IMPORT_FUNC "sceMpegbase_driver",0x304882E1,sceMpegbase_driver_304882E1
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0006
|
||||
IMPORT_FUNC "sceMpegbase_driver",0x7AC0321A,sceMpegBaseYCrCbCopy
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0007
|
||||
IMPORT_FUNC "sceMpegbase_driver",0x91929A21,sceMpegBaseCscAvc
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0008
|
||||
IMPORT_FUNC "sceMpegbase_driver",0xAC9E717E,sceMpegbase_driver_AC9E717E
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0009
|
||||
IMPORT_FUNC "sceMpegbase_driver",0xBEA18F91,sceMpegbase_BEA18F91
|
||||
#endif
|
||||
#ifdef F_sceMpegbase_driver_0010
|
||||
IMPORT_FUNC "sceMpegbase_driver",0x27A2982F,sceMpegBaseInit
|
||||
#endif
|
||||
Reference in New Issue
Block a user