前言 本文测试OK113i-S开发板-视频编解码的功能 OK113i-S开发板是支持视频的编解码的,下面是官方介绍的编解码功能 T113-i 是一种为多媒体解码平台设计的高级应用处理器。T113-i 集成了64位玄铁C906 RISC-V CPU,
双核 Cortex - A7 CPU 和 HiFi4 DSP,提供高效的计算能力。
主要特性
支持 H.265、H.264、MPEG-1/2/4、JPEG 等全格式解码。独立的编码器可以用 JPEG 或 MJPEG 来进行编
码。
T113-i 集成了 H.265/H.264 4K 解码和 SmartColor2.0 后处理,提供完美的视频娱乐体验。 下面我们来测试一下音视频的编码解码功能。 编解码代码 在系统的代码中,下面是程序的位置 ----------------视频/sdk/platform/framework/auto/cmd_demo/decoderTest /sdk/platform/framework/auto/sdk_demo/decoderTest/sdk/platform/framework/auto/sdk_demo/encoderTest/sdk/platform/framework/auto/sdk_demo/fltest_streamPlayer------------------音频/sdk/platform/framework/auto/cmd_demo/audplayer/sdk/platform/framework/auto/qt_demo/fltest_qt_musicplayer/sdk/platform/framework/auto/sdk_demo/audioencTest/sdk/platform/framework/auto/sdk_demo/audplayerTest编译音视频库 系统的音视频库主要是cedarx 和libcedarc;这个在buuildroot中需要选定。如下图 Target Packages Allwinner platform private package select Libcedcrc Cedarx错误 =================>>> cedarx Installing to targetcp -rf /home/forlinx/113/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/build/cedarx/config/_cedarx.conf /home/forlinx/113/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/target/etc/cedarx.confcp: cannot stat '/home/forlinx/113/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/build/cedarx/config/_cedarx.conf': No such file or directorymake[1]: *** [package/pkg-generic.mk:335: /home/forlinx/113/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/build/cedarx/.stamp_target_installed] Error 1解决办法 cp -rf /home/forlinx/113/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/build/cedarx/conf/default_cedarx.conf /home/forlinx/113/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/build/cedarx/config/_cedarx.conf./build.sh
./build.sh pack =============================================
视频解码264 fltest_decoderTest 解码/tmp.h264 为yuv 格式。 root@ok113i:/forlinx/media# ls1.jpg 1280x720_video3.yuv tmp.h2641024x600.rgba 2.jpg tmp.h2651280x720_video0.yuv 2560x1440_dcvideo.yuv videotestsrc_1280x720.nv211280x720_video1.yuv 30s.wav1280x720_video2.yuv test.mp3root@ok113i:/forlinx/media# fltest_decoderTestINFO : cedarc <log_set_level:43>: Set log level to 3 from /vendor/etc/cedarc.conf[2023-12-20 17:35:24] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry adecoder-15 fail![2023-12-20 17:35:24] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry vdecoder-9 fail!INFO : cedarc <CedarPluginVDInit:79>: register h264 decoder success!INFO : cedarc <CedarPluginVDInit:84>: register mjpeg decoder success![ 1097.603725] VE: VE real_freq=576000000[ 1097.603725]INFO : cedarc <CedarPluginVDInit:86>: register mpeg2 decoder success![2023-12-20 17:35:24] WARNING: awplayer <DlOpenPlugin:112>: Invalid plugin,function CedarPluginVDInit not found.INFO : cedarc <CedarPluginVDInit:92>: register mpeg4dx decoder success!INFO : cedarc <CedarPluginVDInit:79>: register mpeg4H263 decoder success!INFO : cedarc <CedarPluginVDInit:90>: register mpeg4Normal decoder success!INFO : cedarc <CedarPluginVDInit:74>: register vc1 decoder success!INFO : cedarc <CedarPluginVDInit:85>: register h265 decoder success![2023-12-20 17:35:24] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry plugin-0 fail!decoderTest version:V2.0.20220506decoderTest intputFile:/forlinx/media/tmp.h264[D]singleDecoderH264Test ================================[D]singleDecoderH264Test ==== CedarC Decoder ====[D]singleDecoderH264Test ==== singleDecoderTest cbk ====[D]singleDecoderH264Test ================================[E][decoderTest.cpp]singleDecoderH264Test line:271 open intputFile:/forlinx/media/tmp.h264[E][decoderTest.cpp]singleDecoderH264Test line:294 open outputFile:/tmp/800x480nv21_sgl.yuvnew AWVideoDecoderImpl() version:V2.0.20220506sdk_memory version:V2.0.20220506DEBUG : ionAlloc <__GetIonMemOpsS:833>: *** get __GetIonMemOpsS ***INFO : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,DEBUG : cedarc <VeInitialize:1347>: *** nPhyOffset = 0x0DEBUG : ionAlloc <ion_alloc_open2:177>: pid: 1559, g_context = 0x28b3b8DEBUG : ionAlloc <ion_alloc_open2:204>: ion alloc open okDEBUG : cedarc <CdcIniParserInit:41>: load conf file /etc/cedarc.conf ok!INFO : cedarc <log_set_level:43>: Set log level to 5 from /vendor/etc/cedarc.confERROR : cedarc <DebugCheckConfig:316>: now cedarc log level:5WARNING: cedarc <InitializeVideoDecoder:619>: warning: the nDeInterlaceHoldingFrameBufferNum is 0[D]singleDecoderH264Test decode process[0/821226]======================= ret:-6 [D]singleDecoderH264Test decode process[815936/821226]offset>(size-4)[D]decoderDataReady decode write[384000/192000]======================= ret:3output file is saved:/tmp/=============================================
视频解码h265 demoVdecoder 这个文件失败 ================================== ok113i:/forlinx/media# demoVdecoder -i /forlinx/media/tmp.h265 -o dec265.yuvINFO : cedarc <log_set_level:43>: Set log level to 3 from /vendor/etc/cedarc.conf[2023-12-20 19:28:03] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry adecoder-15 fail![2023-12-20 19:28:03] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry vdecoder-9 fail!INFO : cedarc <CedarPluginVDInit:79>: register h264 decoder success!INFO : cedarc <CedarPluginVDInit:84>: register mjpeg decoder success!INFO : cedarc <CedarPluginVDInit:86>: register mpeg2 decoder success![2023-12-20 19:28:03] WARNING: awplayer <DlOpenPlugin:112>: Invalid plugin,function CedarPluginVDInit not found.INFO : cedarc <CedarPluginVDInit:92>: register mpeg4dx decoder success!INFO : cedarc <CedarPluginVDInit:79>: register mpeg4H263 decoder success!INFO : cedarc <CedarPluginVDInit:90>: register mpeg4Normal decoder success!INFO : cedarc <CedarPluginVDInit:74>: register vc1 decoder success!INFO : cedarc <CedarPluginVDInit:85>: register h265 decoder success![2023-12-20 19:28:03] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry plugin-0 fail![2023-12-20 19:28:03] DEBUG : awplayer <AwStreamInit:99>: aw stream init...[2023-12-20 19:28:03] DEBUG : awplayer <DemoHelpInfo:1074>: ==== CedarX linux decoder demo help start =====[2023-12-20 19:28:03] DEBUG : awplayer <DemoHelpInfo:1075>: -h or --help to show the demo usage[2023-12-20 19:28:03] DEBUG : awplayer <DemoHelpInfo:1076>: demo created by zouwenhuan, allwinnertech/AL3[2023-12-20 19:28:03] DEBUG : awplayer <DemoHelpInfo:1077>: email: zouwenhuan@allwinnertech.com[2023-12-20 19:28:03] DEBUG : awplayer <DemoHelpInfo:1078>: ===== CedarX linux decoder demo help end ======[2023-12-20 19:28:03] DEBUG : awplayer <main:1254>: nDecoderNum = 1[2023-12-20 19:28:03] DEBUG : awplayer <ChannelThread:1093>: ChannelThread 11, 0[2023-12-20 19:28:03] DEBUG : awplayer <ParseArgument:193>: get input file: file:///forlinx/media/tmp.h265[2023-12-20 19:28:03] DEBUG : awplayer <ParseArgument:210>: get save pic path: dec265.yuvDEBUG : ionAlloc <__GetIonMemOpsS:833>: *** get __GetIonMemOpsS ***INFO : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,DEBUG : cedarc <VeInitialize:1347>: *** nPhyOffset = 0x0DEBUG : ionAlloc <ion_alloc_open2:177>: pid: 1773, g_context = 0xb5d02528DEBUG : ionAlloc <ion_alloc_open2:204>: ion alloc open ok[2023-12-20 19:28:03] DEBUG : awplayer <CdxParserPrepare:778>: source uri 'file:///forlinx/media/tmp.h265'[2023-12-20 19:28:03] DEBUG : awplayer <__FileStreamConnect:407>: (5/0/1133141) path:'file:///forlinx/media/tmp.h265'[2023-12-20 19:28:03] ERROR : CdxFlacParser <__FlacParserProbe:1133>: Flac probe failed.[2023-12-20 19:28:03] WARNING: awplayer <Mp3Probe:854>: Wav parser : no dice, no valid sequence of frames found.[2023-12-20 19:28:03] WARNING: awplayer <Mp3Probe:854>: Wav parser : no dice, no valid sequence of frames found.frames found.[2023-12-20 19:28:03] WARNING: awplayer <Mp3Probe:854>: Wav parser : no dice, no valid sequence offrames found.[2023-12-20 19:28:03] WARNING: awplayer <Mp3Probe:854>: Wav parser : no dice, no valid sequence of frames found.[2023-12-20 19:28:03] DEBUG : awplayer <__WvParserProbe:575>: __WvParserProbe:[2023-12-20 19:28:03] DEBUG : awplayer <__WvParserProbe:575>: __WvParserProbe:[2023-12-20 19:28:03] DEBUG : awplayer <__WvParserProbe:575>: __WvParserProbe:[2023-12-20 19:28:03] DEBUG : awplayer <__WvParserProbe:575>: __WvParserProbe:[2023-12-20 19:28:03] ERROR : awplayer <__G729ParserProbe:290>: g729 SYNC_WORD probe failed.[2023-12-20 19:28:03] ERROR : awplayer <__Id3v2ParserProbe:330>: Probe ID3_header loss sync...[2023-12-20 19:28:03] WARNING: awplayer <CdxParserCreate:711>: Sorry, I don't know what it is![2023-12-20 19:28:03] WARNING: awplayer <CdxParserOpen:756>: should not be here.[2023-12-20 19:28:03] ERROR : awplayer <CdxParserPrepare:789>: open parser fail, uri(file:///forlinx/media/tmp.h265)[2023-12-20 19:28:03] ERROR : awplayer <initDecoder:278>: decoder open parser error nRet = -1, Decoder->parser: (nil)[2023-12-20 19:28:03] ERROR : awplayer <ChannelThread:1156>: decoder demom initDecoder error============================================= 我们修改decoderTest这个程序,使它能解码h265的格式,其中下面代码红色是我修改的。 source ~/113/OK113i-linux-sdk/.buildconfig~/113/OK113i-linux-sdk/platform/framework/auto/sdk_demo/decoderTest$ make============================================== //decoderTest 265int main(int argc, char** argv){ printf("decoderTest265 version:%s\n", MODULE_VERSION); /******** begin set the default encode param ********/ memset(&decodeParam, 0, sizeof(decodeParam)); memset(&testParam, 0, sizeof(testParam)); decodeParam.srcW = 800; decodeParam.srcH = 480; decodeParam.dstW = 800; decodeParam.dstH = 480; decodeParam.rotation = Angle_0; decodeParam.scaleRatio = ScaleNone; decodeParam.codecType = CODEC_H265; decodeParam.pixelFormat = PIXEL_NV21; testParam.testTimes = 1; testParam.testWay = 0; strcpy((char*)testParam.intputFile, "/tmp/tmp.h265");strcpy((char*)testParam.outputFile, "/tmp/dec265_out.yuv");================================================================ Makefile的修改all: $(Target) $(Target) : decoderTest.cpp $(CPP) decoderTest.cpp -o $(Target) $(LIBS) $(LDFLAGS) -lpthread $(CXXFLAGS) $(CPP) decoderTest265.cpp -o $(Target)265 $(LIBS) $(LDFLAGS) -lpthread $(CXXFLAGS) @echo "generate $(Target) success!!!" @cp -f $(Target) $(INSTATLL_PATH) @cp -f $(Target)265 $(INSTATLL_PATH) @echo -e '\e[1;33m cp -f $(Target) $(INSTATLL_PATH) \e[0m'=============================================
测试解码效果 ./decoderTest265INFO : cedarc <log_set_level:43>: Set log level to 3 from /vendor/etc/cedarc.conf[2023-12-21 01:51:19] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry adecoder-15 fail![2023-12-21 01:51:19] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry vdecoder-9 fail!INFO : cedarc <CedarPluginVDInit:79>: register h264 decoder success!INFO : cedarc <CedarPluginVDInit:84>: register mjpeg decoder success![ 3213.535493] VE: VE real_freq=576000000[ 3213.535493]INFO : cedarc <CedarPluginVDInit:86>: register mpeg2 decoder success![2023-12-21 01:51:19] WARNING: awplayer <DlOpenPlugin:112>: Invalid plugin,function CedarPluginVDInit not found.INFO : cedarc <CedarPluginVDInit:92>: register mpeg4dx decoder success!INFO : cedarc <CedarPluginVDInit:79>: register mpeg4H263 decoder success!INFO : cedarc <CedarPluginVDInit:90>: register mpeg4Normal decoder success!INFO : cedarc <CedarPluginVDInit:74>: register vc1 decoder success!INFO : cedarc <CedarPluginVDInit:85>: register h265 decoder success![2023-12-21 01:51:19] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry plugin-0 fail!decoderTest265 version:V2.0.20220506intputFile :/tmp/tmp.h265outputFile :/tmp/d5_out.yuv[D]singleDecoderTest ================================[D]singleDecoderTest ==== CedarC Decoder ====[D]singleDecoderTest ==== singleDecoderTest cbk ====[D]singleDecoderTest ================================new AWVideoDecoderImpl() version:V2.0.20220506sdk_memory version:V2.0.20220506DEBUG : ionAlloc <__GetIonMemOpsS:833>: *** get __GetIonMemOpsS ***INFO : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,DEBUG : cedarc <VeInitialize:1347>: *** nPhyOffset = 0x0DEBUG : ionAlloc <ion_alloc_open2:177>: pid: 1597, g_context = 0x198c480DEBUG : ionAlloc <ion_alloc_open2:204>: ion alloc open okDEBUG : cedarc <CdcIniParserInit:41>: load conf file /etc/cedarc.conf ok!INFO : cedarc <log_set_level:43>: Set log level to 5 from /vendor/etc/cedarc.confERROR : cedarc <DebugCheckConfig:316>: now cedarc log level:5WARNING: cedarc <InitializeVideoDecoder:619>: warning: the nDeInterlaceHoldingFrameBufferNum is 0[D]singleDecoderTest decode process[0/1133141][W][decoderTest265.cpp]singleDecoderTest line:514 decode failed,error code:-6[D]singleDecoderTest decode process[28/1133141][W][decoderTest265.cpp]singleDecoderTest line:514 decode failed,error code:-6[D]singleDecoderTest decode process[86/1133141][D]singleDecoderTest decode process[1127265/1133141]offset>(size-4)WARNING: cedarc <HevcDecoderAddPtsToList:933>: h265 pts list is full[D]decoderDataReady decode write[384000/192000][D]printfArgs -i:/tmp/tmp.h265[D]printfArgs -s:[800x480][D]printfArgs -f:278[D]printfArgs -p:5[D]printfArgs -o:/tmp/d5_out.yuvoutput file is saved:/tmp/d5_out.yuv~ AWVideoDecoderImpl()Test 1 times.=============================================
视频编码 root@ok113i:/forlinx/media# encoderTestencoderTest version:V2.0.2022050[ 5100.284684] VE: VE real_freq=576000000[ 5100.284684]6intputFile /tmp/800_480.yuvoutputFile /tmp/enc720_30p.265outputFile CODEC_H265[D]singleEncoderTest ================================[D]singleEncoderTest ==== CedarC Encoder ====[D]singleEncoderTest ==== singleDecoderTest ====[D]singleEncoderTest ================================[D]printfArgs -s:800x480[D]printfArgs -n:1[D]printfArgs -f:3[D]printfArgs -p:1[D]printfArgs -r:30[D]printfArgs -d:800x480sdk_memory version:V2.0.20220506INFO : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,[D]encodeFile malloc pIonMem->vir=0xb6a63000!new AWVideoEncoderImpl() version:V2.0.20220506sdk_memory version:V2.0.20220506INFO : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,ERROR : cedarc <H265EncOpen:6246>: error: the driver do not support the ic 1667[E][AWVidoeEncoder.cpp]init line:389 VideoEncCreate error, return[E][encoderTest.cpp]encodeFile line:412 init:ffffffff~ AWVideoEncoderImpl()ERROR : cedarc <ReleaseAllocInputBuffer:456>: ReleaseAllocInputBuffer, pEncoder is NULL[D]printfArgs -s:800x480[D]printfArgs -n:1[D]printfArgs -f:3[D]printfArgs -p:1[D]printfArgs -r:30[D]printfArgs -d:800x480output file is saved:/tmp/enc720_30p.265Test 1 times.编码失败,文件为0 =============================================
音频编码 root@ok113i:/forlinx/media# cp 30s.wav /tmp/test.wavroot@ok113i:/forlinx/media# audioenc_testINFO : cedarc <log_set_level:43>: Set log level to 3 from /vendor/etc/cedarc.conf[2023-12-20 18:48:57] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry adecoder-15 fail![2023-12-20 18:48:57] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry vdecoder-9 fail!INFO : cedarc <CedarPluginVDInit:79>: register h264 decoder success!INFO : cedarc <CedarPluginVDInit:84>: register mjpeg decoder success!INFO : cedarc <CedarPluginVDInit:86>: register mpeg2 decoder success![2023-12-20 18:48:57] WARNING: awplayer <DlOpenPlugin:112>: Invalid plugin,function CedarPluginVDInit not found.INFO : cedarc <CedarPluginVDInit:92>: register mpeg4dx decoder success!INFO : cedarc <CedarPluginVDInit:79>: register mpeg4H263 decoder success!INFO : cedarc <CedarPluginVDInit:90>: register mpeg4Normal decoder success!INFO : cedarc <CedarPluginVDInit:74>: register vc1 decoder success!INFO : cedarc <CedarPluginVDInit:85>: register h265 decoder success![2023-12-20 18:48:57] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry plugin-0 fail![2023-12-20 18:48:57] DEBUG : awplayer <AwStreamInit:99>: aw stream init...[2023-12-20 18:48:57] DEBUG : awplayer <AwMuxerInit:53>: aw muxer init ..[2023-12-20 18:48:57] DEBUG : awplayer <AwMuxerInit:62>: aw muxer size:4audioenc test version:V2.0.2022050612-20 18:48:57.953 AudioEnc(W) : AudioEncInit successfopen /tmp/test.wav OKfopen /tmp/test.mp3 ok12-20 18:48:57.955 AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW12-20 18:48:58.001 AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW12-20 18:49:05.031 AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW12-20 18:49:05.077 AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW12-20 18:49:05.123 AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW12-20 18:49:05.169 AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOWfile end exit.audioenc test run finish=============================================
音频解码 下图是
fltest_qt_musicplayer
root@ok113i:/forlinx/media# fltest_audioplayer /forlinx/media/test.mp3[2023-12-20 19:02:26] WARNING: awplayer <log_set_level:30>: Set log level to 3[2023-12-20 19:02:26] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry adecoder-15 fail![2023-12-20 19:02:26] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry vdecoder-9 fail!INFO : cedarc <CedarPluginVDInit:79>: register h264 decoder success!INFO : cedarc <CedarPluginVDInit:84>: register mjpeg decoder success!INFO : cedarc <CedarPluginVDInit:86>: register mpeg2 decoder success![2023-12-20 19:02:26] WARNING: awplayer <DlOpenPlugin:112>: Invalid plugin,function CedarPluginVDInit not found.INFO : cedarc <CedarPluginVDInit:92>: register mpeg4dx decoder success!INFO : cedarc <CedarPluginVDInit:79>: register mpeg4H263 decoder success!INFO : cedarc <CedarPluginVDInit:90>: register mpeg4Normal decoder success!INFO : cedarc <CedarPluginVDInit:74>: register vc1 decoder success!INFO : cedarc <CedarPluginVDInit:85>: register h265 decoder success![2023-12-20 19:02:26] ERROR : awplayer <ReadPluginEntry:194>: read plugin entry plugin-0 fail![2023-12-20 19:02:26] DEBUG : awplayer <AwStreamInit:99>: aw stream init...[2023-12-20 19:02:26] DEBUG : awplayer <AwMuxerInit:53>: aw muxer init ..[2023-12-20 19:02:26] DEBUG : awplayer <AwMuxerInit:62>: aw muxer size:4set url:/forlinx/media/test.mp3[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerCreate:216>: XPlayerCreate.[2023-12-20 19:02:26] DEBUG : awplayer <LogVersionInfo:34>:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> CedarX <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<tag : cedarxbranch: stable_v2.8_commoncommit: 967535b8ff6a073cb4f38e85a4ae5fa6008014d8date : Mon, 15 May 2017 01:30:22 +0000 (09:30 +0800)author:----------------------------------------------------------------------xfang tinyalsa SoundDeviceCreate[2023-12-20 19:02:26] DEBUG : awplayer <LayerCreate_DE:1540>: libsdk_player version:V2.0.20220516, LayerCreate(getInstance 93) version:V2.0.20220506init chwd sucess !(HwDisplay 279)(hwd_init 1258)[2023-12-20 19:02:26] DEBUG : awplayer <LayerCreate_DE:1593>: screen:w 1024, screen:h 600 dispsdk_memory version:V2.0.20220506DEBUG : ionAlloc <__GetIonMemOpsS:833>: *** get __GetIonMemOpsS ***INFO : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,DEBUG : cedarc <VeInitialize:1347>: *** nPhyOffset = 0x0DEBUG : ionAlloc <ion_alloc_open2:177>: pid: 1608, g_context = 0x274370DEBUG : ionAlloc <ion_alloc_open2:204>: ion alloc open ok[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerSetVideoSurfaceTexture:597>: setVideoSurfaceTexture, surface = 0x26fc60[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerThread:1977>: process message XPLAYER_COMMAND_SET_SURFACE.[2023-12-20 19:02:26] DEBUG : awplayer <SubtitleCreate:88>: ==== pCallback: 0xb67e3574, pUser: 0x26b280[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerThread:2038>: ==== process message XPLAYER_COMMAND_SET_SUBCTRL.[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerSetDeinterlace:718>: set deinterlace[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerThread:2053>: ==== process message XPLAYER_COMMAND_SET_SUBCTRL.[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerSetDataSourceUrl:462>: setDataSource(url), url='/forlinx/media/test.mp3'[2023-12-20 19:02:26] INFO : awplayer <XPlayerThread:1814>: process message XPLAYER_COMMAND_SET_SOURCE.[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerPrepare:767>: prepare[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerThread:2067>: process message XPLAYER_COMMAND_PREPARE. mPriData->mStatus: 1[2023-12-20 19:02:26] DEBUG : demuxComponent <DemuxThread:1792>: process message DEMUX_COMMAND_PREPARE.[2023-12-20 19:02:26] DEBUG : awplayer <CdxParserPrepare:778>: source uri 'file:///forlinx/media/test.mp3'[2023-12-20 19:02:26] DEBUG : awplayer <__FileStreamConnect:407>: (6/0/4818092) path:'file:///forlinx/media/test.mp3'[2023-12-20 19:02:26] DEBUG : awplayer <CdxParserCreate:668>: parser node is id3v2.[2023-12-20 19:02:26] DEBUG : awplayer <CdxParserCreate:717>: Good, it's 'id3v2'[2023-12-20 19:02:26] DEBUG : awplayer <CdxParserCreate:717>: Good, it's 'mp3'[2023-12-20 19:02:26] WARNING: awplayer <CdxMp3ParserControl:1267>: not implement...(18)[2023-12-20 19:02:26] DEBUG : awplayer <PrintMediaInfo:468>: *********PrintMediaInfo begin*********[2023-12-20 19:02:26] DEBUG : awplayer <PrintMediaInfo:482>: fileSize = 4818092, bSeekable = 1, duration = 300016, audioNum = 1, videoNum = 0, subtitleNum = 0[2023-12-20 19:02:26] DEBUG : awplayer <PrintMediaInfo:520>: ***Audio[0]*** eCodecFormat = 0x3, eSubCodecFormat = 0x0, nChannelNum = 2, nBitsPerSample = 0, nSampleRate = 44100[2023-12-20 19:02:26] DEBUG : awplayer <PrintMediaInfo:536>: *********P[ 2124.461204] [SNDCODEC][sunxi_card_hw_params][651]:stream_flag: 0rintMediaInfo end*********[2023-12-20 19:02:26] DEBUG : demuxComponent <PrintMediaInfo:468>: *********PrintMediaInfo begin*********[2023-12-20 19:02:26] DEBUG : demuxComponent <PrintMediaInfo:482>: fileSize = 4818092, bSeekable = 1, duration = 300016, audioNum = 1, videoNum = 0, subtitleNum = 0[2023-12-20 19:02:26] DEBUG : demuxComponent <PrintMediaInfo:520>: ***Audio[0]*** eCodecFormat = 0x3, eSubCodecFormat = 0x0, nChannelNum = 2, nBitsPerSample = 0, nSampleRate = 44100[2023-12-20 19:02:26] DEBUG : demuxComponent <PrintMediaInfo:536>: *********PrintMediaInfo end*********[2023-12-20 19:02:26] DEBUG : awplayer <AudioRenderCompSetAudioSink:195>: audio render component setting AudioSink[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerPrepareAsync:747>: prepareAsync[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerThread:2067>: process message XPLAYER_COMMAND_PREPARE. mPriData->mStatus: 412-20 19:02:26.531 (W) AUTPlayer info: prepare ok.[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerStart:797>: start[2023-12-20 19:02:26] DEBUG : awplayer <XPlayerThread:2275>: process message XPLAYER_COMMAND_START.[2023-12-20 19:02:26] DEBUG : awplayer <[ 2124.569726] [SNDCODEC][sunxi_card_hw_params][651]:stream_flag: 0PlayerStart:740>: player start[2023-12-20 19:02:26] DEBUG : awplayer <BaseCompPostAndWait:61>: audio decoder receive cmd: start(Allwinner Audio Middle Layer),line(971) : Create Decoder!!=====[2023-12-20 19:02:26] DEBUG : awplayer <handleStart:1086>: Create libadecoder success...(Allwinner Audio Middle Layer),line(603) : AudioDec_Installaudiolib ok(Allwinner Audio Middle Layer),line(606) : audio decoder init start ...(AllwinnerAlibs),line(50) :>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Audio <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<tag : audiocodec-v1.2branch: newcommit: 3ba65962c01cbf1280ddda19d843009b6ef8ce85date : Tue Jan 8 16:25:27 2019 +0800----------------------------------------------------------------------(AllwinnerAlibs),line(700) : ----Loading so success!(AllwinnerAlibs),line(902) : *************pAudioStreamInfo start******************(AllwinnerAlibs),line(903) : eCodecFormat :id(3), name(mpeg layer-III)(AllwinnerAlibs),line(904) : eSubCodecFormat :0(AllwinnerAlibs),line(905) : nChannelNum :2(AllwinnerAlibs),line(906) : nBitsPerSample :16(AllwinnerAlibs),line(907) : nSampleRate :44100(AllwinnerAlibs),line(908) : nAvgBitrate :128000(AllwinnerAlibs),line(909) : nMaxBitRate :128000(AllwinnerAlibs),line(910) : nFileSize :0(AllwinnerAlibs),line(911) : eAudioBitstreamSource:0(AllwinnerAlibs),line(912) : eDataEncodeType :0(AllwinnerAlibs),line(913) : nCodecSpecificDataLen:0(AllwinnerAlibs),line(914) : pCodecSpecificData :(nil)(AllwinnerAlibs),line(915) : nFlags :0(AllwinnerAlibs),line(916) : nBlockAlign :0(AllwinnerAlibs),line(917) : *************pAudioStreamInfo end ******************(Allwinner Audio Libs),line(27) : init successs...(Allwinner Audio Middle Layer),line(614) : AUDIO DECODE INIT OK...0[2023-12-20 19:02:26] DEBUG : awplayer <BaseCompPostAndWait:61>: audio render receive cmd: start[2023-12-20 19:02:26] INFO : awplayer <handleStart:295>: audio render process start message.[2023-12-20 19:02:26] DEBUG : awplayer <initSoundDevice:478>: init sound device.[2023-12-20 19:02:26] DEBUG : awplayer <initSoundDevice:486>: set sound devide param, sample rate = 44100, channel num = 2.[2023-12-20 19:02:26] DEBUG : demuxComponent <DemuxThread:2053>: process message DEMUX_COMMAND_START.[2023-12-20 19:02:26] WARNING: awplayer <callbackProcess:3656>: message 0x40a not handled.======================================|Space key | start or pause ||Left key | seek backend ||Right key | seek forward ||Up key | audio volume larger ||Down key | audio volume small |======================================[2023-12-20 19:02:26] DEBUG : awplayer <startSoundDevice:684>: start sound device.[2023-12-20 19:02:26] DEBUG : awplayer <startSoundDevice:686>: audio device start end[2023-12-20 19:02:26] DEBUG : awplayer <CallbackProcess:2959>: first audio pts = 0[2023-12-20 19:02:26] WARNING: awplayer <checkSampleRate:644>: sample rate change from 44100 to 44100.[2023-12-20 19:02:26] WARNING: awplayer <checkSampleRate:646>: channel num change from 2 to 2.[2023-12-20 19:02:26] WARNING: awplayer <checkSampleRate:648>: bitPerSample num change from 16 to 16.[2023-12-20 19:02:26] WARNING: awplayer <checkSampleRate:650>: if need direct out put flag change from 0 to 1.[2023-12-20 19:02:26] WARNING: awplayer <checkSampleRate:652>: data type change from 1 to 1.[2023-12-20 19:02:26] WARNING: awplayer <checkSampleRate:671>: start sound devide again because samplaRate or channelNum change[2023-12-20 19:02:26] INFO : demuxComponent <DemuxThread:3226>: waiting for audio stream buffer.[2023-12-20 19:02:26] INFO : demuxComponent <DemuxThread:3226>: waiting for audio stream buffer.[2023-12-20 19:02:27] INFO : demuxComponent <DemuxThread:3226>: waiting for audio stream buffer.[2023-12-20 19:02:27] INFO : demuxComponent <DemuxThread:3226>: waiting for audio stream buffer.=============================================
测试结果 视频 h264的文件能解,h265也可以解了;编码h264不正常。
音频 编码解码都可以正常运行。Sdk和测试app都可以运行,但是具体的编码格式没有详细测试。 如有错误,欢迎指正,一起学习
|