recordvideo移植相关问题记录

错误1

frameworks/base/cmds/stagefright/recordvideo.cpp:In function 'int translateColorToOmxEnumValue(int)':

frameworks/base/cmds/stagefright/recordvideo.cpp:156:error:'OMX_TI_COLOR_FormatYUV420PackedSemiPlanar' wasnot declared in this scope

frameworks/base/cmds/stagefright/recordvideo.cpp:157:error:'OMX_QCOM_COLOR_FormatYVU420SemiPlanar' was notdeclared in this scope

frameworks/base/cmds/stagefright/recordvideo.cpp:In function 'int main(int, char**)':

frameworks/base/cmds/stagefright/recordvideo.cpp:283:error: 'kKeyFrameRate' was not declared in this scope

make: ***[out/target/product/smdkv210/obj/EXECUTABLES/recordvideo_intermediates/recordvideo.o]错误 1

make:离开目录“/home/wangran/android/Android-2.3.1

修改方法:(1)将OMX_TI_COLOR_FormatYUV420PackedSemiPlanar修改成为

            OMX_COLOR_FormatYUV420SemiPlanar

         2OMX_QCOM_COLOR_FormatYVU420SemiPlanar删除

         3)利用find命令查找MetaData .h的位置,对应位于

     /frameworks/base/include/media/stagefright/MetaData.h,在enum中添加变量'kKeyFrameRate'对应为kKeyFrameRate=frte

错误2

frameworks/base/cmds/stagefright/audioloop.cpp:In function 'int main()':

frameworks/base/cmds/stagefright/audioloop.cpp:36:error: 'AUDIO_CHANNEL_IN_MONO'was not declared in this scope

frameworks/base/cmds/stagefright/audioloop.cpp:37:error:'AUDIO_CHANNEL_IN_STEREO'was not declared in this scope

解决方法:由于暂时没有用到audio,因此暂时屏蔽,采用的方式是使用2.3.3下面的audioloop.cpp

错误3

targetthumb C++: stream <= frameworks/base/cmds/stagefright/stream.cpp

frameworks/base/cmds/stagefright/stream.cpp:23:33:error:media/IStreamSource.h:No such file or directory

frameworks/base/cmds/stagefright/stream.cpp:42:error: expected class-name before '{' token

frameworks/base/cmds/stagefright/stream.cpp:46:error: 'IStreamListener' was not declared in this scope

frameworks/base/cmds/stagefright/stream.cpp:46:error: template argument 1 is invalid

frameworks/base/cmds/stagefright/stream.cpp:59:error: 'IStreamListener' was not declared in this scope

frameworks/base/cmds/stagefright/stream.cpp:59:error: template argument 1 is invalid

frameworks/base/cmds/stagefright/stream.cpp:80:error: 'IStreamListener' was not declared in this scope

frameworks/base/cmds/stagefright/stream.cpp:80:error: template argument 1 is invalid

frameworks/base/cmds/stagefright/stream.cpp:In member function 'virtual void MyStreamSource::onBufferAvailable(size_t)':

frameworks/base/cmds/stagefright/stream.cpp:114:error: base operand of '->' is not a pointer

frameworks/base/cmds/stagefright/stream.cpp:114:error: 'IStreamListener' has not been declared

frameworks/base/cmds/stagefright/stream.cpp:116:error: base operand of '->' is not a pointer

frameworks/base/cmds/stagefright/stream.cpp:At global scope:

frameworks/base/cmds/stagefright/stream.cpp:123:error: expected class-name before '{' token

frameworks/base/cmds/stagefright/stream.cpp:126:error: 'IStreamListener' was not declared in this scope

frameworks/base/cmds/stagefright/stream.cpp:126:error: template argument 1 is invalid

frameworks/base/cmds/stagefright/stream.cpp:138:error: 'IStreamListener' was not declared in this scope

frameworks/base/cmds/stagefright/stream.cpp:138:error: template argument 1 is invalid

frameworks/base/cmds/stagefright/stream.cpp:In constructor 'MyConvertingStreamSource::MyConvertingStreamSource(constchar*)':

frameworks/base/cmds/stagefright/stream.cpp:166:error: no matching function for call to'android::MPEG2TSWriter::MPEG2TSWriter(MyConvertingStreamSource* const, ssize_t(*)(void*, const void*, size_t))'

frameworks/base/include/media/stagefright/MPEG2TSWriter.h:72:note: candidates are: android::MPEG2TSWriter::MPEG2TSWriter(constandroid::MPEG2TSWriter&)

frameworks/base/include/media/stagefright/MPEG2TSWriter.h:32:note:                android::MPEG2TSWriter::MPEG2TSWriter(const char*)

frameworks/base/include/media/stagefright/MPEG2TSWriter.h:31:note:                android::MPEG2TSWriter::MPEG2TSWriter(int)

frameworks/base/cmds/stagefright/stream.cpp:At global scope:

frameworks/base/cmds/stagefright/stream.cpp:188:error: 'IStreamListener' was not declared in this scope

frameworks/base/cmds/stagefright/stream.cpp:188:error: template argument 1 is invalid

frameworks/base/cmds/stagefright/stream.cpp:In member function 'ssize_t MyConvertingStreamSource::writeData(const void*,size_t)':

frameworks/base/cmds/stagefright/stream.cpp:230:error: base operand of '->' is not a pointer

frameworks/base/cmds/stagefright/stream.cpp:In member function 'virtual voidMyConvertingStreamSource::onBufferAvailable(size_t)':

frameworks/base/cmds/stagefright/stream.cpp:251:error: base operand of '->' is not a pointer

frameworks/base/cmds/stagefright/stream.cpp:255:error: base operand of '->' is not a pointer

frameworks/base/cmds/stagefright/stream.cpp:255:error: 'IStreamListener' has not been declared

frameworks/base/cmds/stagefright/stream.cpp:In function 'int main(int, char**)':

frameworks/base/cmds/stagefright/stream.cpp:320:error: invalid conversion from 'const char*' to 'int'

frameworks/base/cmds/stagefright/stream.cpp:320:error:   initializing argument 1 of'android::sp<android::SurfaceControl>android::SurfaceComposerClient::createSurface(int, android::DisplayID,uint32_t, uint32_t, android::PixelFormat, uint32_t)'

frameworks/base/cmds/stagefright/stream.cpp:339:error: cannot allocate an object of abstract type 'MyClient'

frameworks/base/cmds/stagefright/stream.cpp:261:note:   because the following virtualfunctions are pure within 'MyClient':

frameworks/base/include/media/IMediaPlayerClient.h:31:note:    virtual voidandroid::IMediaPlayerClient::notify(int, int, int)

frameworks/base/cmds/stagefright/stream.cpp:341:error: 'IStreamSource' was not declared in this scope

frameworks/base/cmds/stagefright/stream.cpp:341:error: template argument 1 is invalid

frameworks/base/cmds/stagefright/stream.cpp:341:error: invalid type in declaration before ';' token

frameworks/base/cmds/stagefright/stream.cpp:352:error: invalid conversion from 'MyStreamSource*' to 'int'

frameworks/base/cmds/stagefright/stream.cpp:356:error: invalid conversion from 'MyConvertingStreamSource*' to 'int'

frameworks/base/cmds/stagefright/stream.cpp:362:error: 'class android::IMediaPlayer' has no member named 'setDataSource'

frameworks/base/cmds/stagefright/stream.cpp:363:error: 'class android::IMediaPlayer' has no member named'setVideoSurfaceTexture'

frameworks/base/cmds/stagefright/stream.cpp:363:error: 'class android::Surface' has no member named 'getSurfaceTexture'

make:*** [out/target/product/smdkv210/obj/EXECUTABLES/stream_intermediates/stream.o]错误 1

 

解决方法:修改Android.mk,将对应stream的内容屏蔽掉及stream下面的内容封闭掉

 

Android4.0中查找media/IStreamSource.h,结合相应的信息在Android4.0下面进行查找

错误4

问题:使用单模块编译videorecord的命令如下:

     /android/Android2.3.3# source build/envsetup.sh

     /android/Android2.3.3#mmm framework/base/cmds/stagefright

对应显示编译错误为:tiny210中单模块mmm编译总是显示没有什么规则可以make

 

解决方法

我想可以参考友善之臂的build-android脚本来初始化编译环境,在android根目录下执行

$source ./setenv
$cd /path/to/framework/module
$mm

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值