查看完整版本: PSP解码RMVB问题~!

yuweide2009 2008-6-27 13:53

PSP解码RMVB问题~!

刚才看了些资料,PSP有两块CPU,不过是分开的一个是用于3D运算,另外一块才是用于媒体播放,要想两块协同,至少现在还没办法。那就是说PSP要解码RM的CPU最高只能用333了。刚才看了诺基亚N95跟PSP一样的CPU是333的,只能播放小于等于320*240分辨率的RMVB格式电影。高于这个分辨率能播放。但是会很卡~!所以PSP要想播放RM是可以的。但是有两个条件:第一:得到RM的授权  第二:只能播放320*240分辨率以下的RMVB格式影片 高于这个绝对很卡

这样看来,还有什么意义呢。现在98%的RM格式电影 分辨率都在640*480以上。。。。 PSP看来基本无望了   还是要转码~!
除非等两个CPU协同(可行性1%)或者找到其他什么办法来帮助CPU解码(就象PSPCHINA里的Reality的作者说的那样用ME来帮助解码)

期待 PSPCHINA的超级达人门~!

[[i] 本帖最后由 yuweide2009 于 2008-6-27 14:10 编辑 [/i]]

cgqnew 2008-6-27 16:17

几年前的摩托罗拉E680就能播放不大于640X480的影片 据说CPU还不到300MHZ呢

cgqnew 2008-6-27 16:22

现在E680还能播放PMP格式的影片 只要不改变默认窗口大小就能流畅的播放

cgqnew 2008-6-27 17:17

希望大家学习一下E680的ezxplayer0.9播放软件

nessus 2008-6-28 10:45

[quote]原帖由 [i]cgqnew[/i] 于 2008-6-27 17:17 发表 [url=http://bbs.pspchina.net/redirect.php?goto=findpost&pid=3519211&ptid=271497][img]http://bbs.pspchina.net/images/common/back.gif[/img][/url]
希望大家学习一下E680的ezxplayer0.9播放软件 [/quote]
开源吗?不开怎么学?

a22332223 2008-6-28 20:21

[quote]原帖由 [i]nessus[/i] 于 2008-6-28 10:45 发表 [url=http://bbs.pspchina.net/redirect.php?goto=findpost&pid=3521402&ptid=271497][img]http://bbs.pspchina.net/images/common/back.gif[/img][/url]

开源吗?不开怎么学? [/quote]
这个软件的源码,我有,,E680系统用的是Linux,,,,把源码发上来好像也没用啊

ralfjones 2008-7-7 12:17

稍有硬件常识的朋友都知道,CPU的性能不能只根据频率来衡量的,决定它的因素很多,如缓存,流水级架构,对系统和多媒体的支持和优化等等,而且不同类型的CPU的频率根本没有可比性的。别的不说,为什么电脑游戏要达到游戏机的效果这么困难?这两种CPU的频率差很多。个人认为psp的CPU已经很强了,竟然可以支持H264解码。LZ如果认为N95的CPU和PSP的CPU是同级的话,试试让N95来播放一段分辨率是720*480的HAVC的Mp4试试,此类编码对CPU的要求并不比RMVB低。

acrosson 2008-7-8 00:03

顶楼上!
P4和酷睿就是很好的例子!

yuweide2009 2008-7-9 11:47

到底知道不?PSP能解码H264完全是内嵌了一块专门加码的芯片.是硬解.不是单纯靠CPU解码,或者软解~!

qbkqqqqqq 2008-7-9 21:57

现在说什么也没用,除非能拿到reality的源码大家分析下,或者有哪位达人再做一个达到或者超越reality的软件,做reality的老大也就算了,别的人不要再说自己能编,只不过怕人告之类的话了,非营利性用于研究与学习的程序可以无视版权,至少中国的法律是这么规定的,更何况你觉得DA大神对sony官方固件的修改那又算什么呢?别跟我说你们不用自制系统

testuser2 2008-7-10 11:56

reality应该是用了real的代码helix codec
但是官方代码没有针对mips做优化

要想拿到代码,必须跟real签订类似NDA的协议
所以作者也不会说不要问他代码从哪里来

据我所知,real解码器 龙芯也在开发

yuweide2009 2008-7-11 11:12

关键是请求PSPCHINA的各位达人门,能够优化Reality,或者从新做。要知道只有你们才有这个能力呀,毕竟Reality的作者就是PSPCHINA的

yero2006 2008-7-11 14:04

[quote]原帖由 [i]cgqnew[/i] 于 2008-6-27 16:22 发表 [url=http://bbs.pspchina.net/redirect.php?goto=findpost&pid=3519045&ptid=271497][img]http://bbs.pspchina.net/images/common/back.gif[/img][/url]
现在E680还能播放PMP格式的影片 只要不改变默认窗口大小就能流畅的播放 [/quote]
汗死,E680播放H264编码的MP4和PMP都卡得要死,有声的话每秒大概1桢,无声的话每秒大概5桢,超频的话稍微快了一点点。这还是320X240,500kbps的电影。居然还说“流畅”,实在无言。除非是放的XVID编码PMP,那倒还差不多。
另外E680的CPU为312MHZ,播放640X480的RM根本没有什么意义,一个字,卡!每秒能过3桢就不错了(不要拿超低码率的电影说事,640X480的分辨率却用超低码率,那样的电影谁会转?)其实我试过,320X240,600KBPS,每秒24桢左右的RM不超频放起来都会卡,超频后才勉强流畅。这样的解码能力,其实意义根本不太大,大部分电影都还是要转的。

qbkqqqqqq 2008-7-11 20:03

[quote]原帖由 [i]testuser2[/i] 于 2008-7-10 11:56 发表 [url=http://bbs.pspchina.net/redirect.php?goto=findpost&pid=3565370&ptid=271497][img]http://bbs.pspchina.net/images/common/back.gif[/img][/url]
reality应该是用了real的代码helix codec
但是官方代码没有针对mips做优化

要想拿到代码,必须跟real签订类似NDA的协议
所以作者也不会说不要问他代码从哪里来

据我所知,real解码器 龙芯也在开发 [/quote]
helix codec的real代码不是开源的么,貌似还带了几个库,我这用不了cygwin就没装。

yuweide2009 2008-7-12 13:17

期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待 期待 万众期待   PSPCHINA达人门 早日放出 RMVB播放器

testuser2 2008-7-12 13:56

[quote]原帖由 [i]qbkqqqqqq[/i] 于 2008-7-11 20:03 发表 [url=http://bbs.pspchina.net/redirect.php?goto=findpost&pid=3569891&ptid=271497][img]http://bbs.pspchina.net/images/common/back.gif[/img][/url]

helix codec的real代码不是开源的么,貌似还带了几个库,我这用不了cygwin就没装。 [/quote]
那些只是其他codec,Real Video和Real Audio还不是开源

qbkqqqqqq 2008-7-12 14:29

[quote]原帖由 [i]testuser2[/i] 于 2008-7-12 13:56 发表 [url=http://bbs.pspchina.net/redirect.php?goto=findpost&pid=3571947&ptid=271497][img]http://bbs.pspchina.net/images/common/back.gif[/img][/url]

那些只是其他codec,Real Video和Real Audio还不是开源 [/quote]
不过里面好像有些api,不然怎么通过那些源代码就可以编译出realplayer?我在datatype下看到rm子文件夹,然后这是\datatype\rm\video\codec\rv89combo\frontend里面的一个源代码的截取。。。[code]/* ***** BEGIN LICENSE BLOCK *****
* Version: RCSL 1.0/RPSL 1.0
*  
* Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved.
*      
* The contents of this file, and the files included with this file, are
* subject to the current version of the RealNetworks Public Source License
* Version 1.0 (the "RPSL") available at
* http://www.helixcommunity.org/content/rpsl unless you have licensed
* the file under the RealNetworks Community Source License Version 1.0
* (the "RCSL") available at http://www.helixcommunity.org/content/rcsl,
* in which case the RCSL will apply. You may also obtain the license terms
* directly from RealNetworks.  You may not use this file except in
* compliance with the RPSL or, if you have a valid RCSL with RealNetworks
* applicable to this file, the RCSL.  Please see the applicable RPSL or
* RCSL for the rights, obligations and limitations governing use of the
* contents of the file.  
*  
* This file is part of the Helix DNA Technology. RealNetworks is the
* developer of the Original Code and owns the copyrights in the portions
* it created.
*  
* This file, and the files included with this file, is distributed and made
* available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
*
* Technology Compatibility Kit Test Suite(s) Location:
*    http://www.helixcommunity.org/content/tck
*
* Contributor(s):
*  
* ***** END LICENSE BLOCK ***** */

///////////////////
//        include files

#include "hxtypes.h"
#include "hxresult.h"

#if (defined(BUILD_RV789COMBO_DECODER_FRONTEND) || defined(BUILD_RV789MP4COMBO_DECODER_FRONTEND)) && defined(HELIX_FEATURE_DLLACCESS_CLIENT)

#define INITGUID 1
#include "hxcom.h"
#undef INITGUID

#else        // (BUILD_RV789COMBO_DECODER_FRONTEND || BUILD_RV789MP4COMBO_DECODER_FRONTEND) && HELIX_FEATURE_DLLACCESS_CLIENT

#include "dllpath.h"

ENABLE_DLLACCESS_PATHS(RV30);

#endif        // (BUILD_RV789COMBO_DECODER_FRONTEND || BUILD_RV789MP4COMBO_DECODER_FRONTEND) && HELIX_FEATURE_DLLACCESS_CLIENT

#include "hxassert.h"
#include "hxcodec.h"

#include "hxmtypes.h"

#include "hxheap.h"

#include "rv30api.h"

#ifdef _DEBUG
#undef HX_THIS_FILE               
static const char HX_THIS_FILE[] = __FILE__;
#endif


HX_RESULT RV20CreateInstance(IHXUnknown *pUnkOuter, HX_IID riid, void **ppv);

///////////////////
//        local definitions

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_Open
//
//        Purpose:
//                PNCodec_Open() attempts to load a codec whose type is specified
//                by moftFormatTag.  Some currently used codec HX_MOFTAGs are:
//                RA_FORMAT_3_ID        RealAudio 14.4 audio codec
//                RA_FORMAT_4_ID        RealAudio 28.8 audio codec
//
//        Parameters:
//                moftFormatTag - the 4 byte codec identifier
//                codecRef - the HXCODEC reference is returned in codecRef.
//                You will need to use this         reference in all future HXCodec_XXX() functions.
//
//        Return:
//                S_OK - loading of codec was successful.
//                HXR_OUTOFMEMORY - insufficient memory to load codec.
//                HXCODEC_LOAD_ERR - unable to load codec.
//
//        Notes:
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_Open)(HX_MOFTAG moftFormatTag, HXCODEC *pcodecRef)
{
        HX_TRACE("PNCodec_Open()\r\n");
        HX_RESULT theErr = S_OK;

        HX_ASSERT_VALID_PTR(pcodecRef);

        *pcodecRef = NULL;

        theErr = RV20CreateInstance(NULL, moftFormatTag, pcodecRef);
        return(theErr);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_Close
//
//        Purpose:
//                PNCodec_Close() closes a codec referenced by codecRef.
//                Note: After calling PNCodec_Close(), codecRef is no longer a valid
//                codec reference.
//
//        Parameters:
//                codecRef - the codec reference returned by PNCodec_Open().
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_Close)(HXCODEC codecRef)
{
        HX_TRACE("PNCodec_Close()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_Close();
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_GetUIName
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_GetUIName)(HXCODEC codecRef, char *pnameBuf)
{
        HX_TRACE("PNCodec_GetUIName()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_GetUIName(pnameBuf);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_GetVersion
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_GetVersion)(HXCODEC codecRef, ULONG32 *pVersion)
{
        HX_TRACE("PNCodec_GetVersion()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_GetVersion(pVersion);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_QueryMediaFormat
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_QueryMediaFormat)(HXCODEC codecRef, HX_MOF * pmofIn,
        HX_MOF * pmofOut, UINT16 ioDirection)
{
        HX_TRACE("PNCodec_QueryMediaFormat()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_QueryMediaFormat(pmofIn, pmofOut, ioDirection);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_PreferredMediaFormat
//
//        Purpose:
//                ioDirection                Either HXCODEC_INPUT or HXCODEC_OUTPUT, HXCODEC_INPUT
//                                                specifies the pmofOut is filled out with the desired
//                                                output format and we want to find out what the perferred
//                                                input media format is.
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_PreferredMediaFormat)(HXCODEC codecRef, HX_MOF * pmofIn,
        HX_MOF * pmofOut, UINT16 ioDirection)
{
        HX_TRACE("HXCodec_PerferredMediaFormat()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_PreferredMediaFormat(pmofIn, pmofOut, ioDirection);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_GetMediaFormats
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_GetMediaFormats)(HXCODEC codecRef, UINT16 ioDirection,
        FP_MEDIAFORMATSCALLBACK fpCallback, void *userData)
{
        HX_TRACE("PNCodec_GetMediaFormats()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_GetMediaFormats(ioDirection, fpCallback,
                userData);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_StreamOpen
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_StreamOpen)(HXCODEC codecRef, HXSTREAM * pStreamRef,
        HXCODEC_INIT * pParams)
{
        HX_TRACE("PNCodec_StreamOpen()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_StreamOpen(pStreamRef, pParams);
}

#ifdef ADD_HXCODEC_INPUT
/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNCodec_Input
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNCodec_Input)(HXCODEC codecRef, HXCODEC_DATA * pData)
{
        HX_TRACE("HXCodec_()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_Input(pData);
}
#endif

#if defined ADD_HXCODEC_GETIPNUNKNOWN
IHXUnknown * HXEXPORT ENTRYPOINT(PNCodec_GetIPNUnknown)(HXCODEC codecRef)
{
        HX_TRACE("PNCodec_GetIPNUnknown()\r\n");
        HX_ASSERT_VALID_PTR(codecRef);

        IHX20Codec* pCodecObj        = (IHX20Codec *)codecRef;
        return pCodecObj->PNCodec_GetIPNUnknown();
}
#endif

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_OpenSettingsBox
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_OpenSettingsBox)(HXSTREAM streamRef, void * platformData)
{
        HX_TRACE("PNStream_OpenSettingsBox()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_OpenSettingsBox(platformData);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_GetIPNUnknown
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
IHXUnknown * HXEXPORT ENTRYPOINT(PNStream_GetIPNUnknown)(HXSTREAM streamRef)
{
        HX_TRACE("PNStream_GetIPNUnknown()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_GetIPNUnknown();
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_SetDataCallback
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_SetDataCallback)(HXSTREAM streamRef,
        HXSTREAM callbackRef, HXMEMORY memoryRef, FP_STREAM_DATA fpDataCallback)
{
        HX_TRACE("PNStream_SetDataCallback()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);


        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_SetDataCallback(callbackRef, memoryRef,
                fpDataCallback);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_SetProperty
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_SetProperty)(HXSTREAM streamRef, ULONG32 prop,
        void *pValue)
{
        HX_TRACE("PNStream_SetProperty()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);


        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_SetProperty(prop, pValue);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_GetProperty
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_GetProperty)(HXSTREAM streamRef, ULONG32 prop,
        void *pValue)
{
        HX_TRACE("PNStream_GetProperty()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);


        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_GetProperty(prop, pValue);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_Close
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_Close)(HXSTREAM streamRef)
{
        HX_TRACE("PNStream_Close()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_Close();
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_GetStreamHeaderSize
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_GetStreamHeaderSize)(HXSTREAM streamRef,
        ULONG32 * puSize)
{
        HX_TRACE("PNStream_GetStreamHeaderSize()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_GetStreamHeaderSize(puSize);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_GetStreamHeader
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_GetStreamHeader)(HXSTREAM streamRef, HX_MOF * pHeader)
{
        HX_TRACE("PNStream_GetStreamHeaderSize()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_GetStreamHeader(pHeader);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_Input
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_Input)(HXSTREAM streamRef, HXSTREAM fromStreamRef,
        HXCODEC_DATA * pData)
{
        HX_TRACE("HXStream_()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_Input(fromStreamRef, pData);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_SetOutputPacketSize
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_SetOutputPacketSize)(HXSTREAM streamRef,
        ULONG32 PrefSize, ULONG32 MaxSize, ULONG32 *pActualSize)
{
        HX_TRACE("PNStream_SetOutputPacketSize()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_SetOutputPacketSize(PrefSize, MaxSize,
                pActualSize);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_GetInputBufferSize
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//
HX_RESULT HXEXPORT ENTRYPOINT(PNStream_GetInputBufferSize)(HXSTREAM streamRef,
        ULONG32 * puSize)
{
        HX_TRACE("PNStream_GetInputBufferSize()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;
        return pStreamObj->PNStream_GetInputBufferSize(puSize);
}


#ifdef HW_VIDEO_MEMORY_FRONTEND

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_PostProcess
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//


HX_RESULT HXEXPORT ENTRYPOINT(PNStream_PostProcess)(HXSTREAM streamRef,
                                HXCODEC_DATA *pncData,
                                ULONG32        uCurrentTime,
                                UCHAR *pDestBuffer,
                                UINT32 uDestPitch,
                                INT32 cidDestColorFormat)
{
        HX_TRACE("PNStream_PostProcess()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;

        return pStreamObj->PNStream_PostProcess(pncData,
                                                        uCurrentTime,
                                                        pDestBuffer,
                                                        uDestPitch,
                                                        cidDestColorFormat);
}

/////////////////////////////////////////////////////////////////////////////
//
//        Function:
//
//                PNStream_ReleaseFrame
//
//        Purpose:
//
//
//        Parameters:
//
//
//        Return:
//
//
//        Notes:
//
//

HX_RESULT HXEXPORT ENTRYPOINT(PNStream_ReleaseFrame)(HXSTREAM streamRef,
        HXCODEC_DATA *pncData)
{
        HX_TRACE("PNStream_ReleaseFrame()\r\n");
        HX_ASSERT_VALID_PTR(streamRef);

        IHX20Stream* pStreamObj        = (IHX20Stream *)streamRef;

        return pStreamObj->PNStream_ReleaseFrame(pncData);
}

#endif[/code]

yuweide2009 2008-7-13 18:51

如果 RMVB播放器 真的 在PSP上实现的话  那买PSP的人会更多的  关键是期待 达人门的研究吧~!

jy03581351 2008-7-13 19:03

我试了下那个rm在低分辨率下可以播放  流畅

yuweide2009 2008-7-14 20:24

你说得很对,确实 RMVB低分辨率 低马率可以流畅,我们非常骄傲是PSPCHINA里面的作者开发的,说明里面的达人非常多.都是隐藏高手.
但是应该很简单就发现了吧?没有声音 对把?  所以  我们一起期待  PSPCHINA达人门 的优化吧?   依然 万众期待~! 亿众盼望~!
页: [1] 2
查看完整版本: PSP解码RMVB问题~!