当前位置: 首页 > news >正文

【飞凌 OK113i-C 全志T113-i开发板】视频编解码测试

前言

本文测试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 PackagesAllwinner platform private package selectLibcedcrcCedarx

微信截图_20231220140841.png

微信截图_20231221103631.png

错误

=================
>>> cedarx  Installing to target
cp -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.conf
cp: cannot stat '/home/forlinx/113/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/build/cedarx/config/_cedarx.conf': No such file or directory
make[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# ls
1.jpg                1280x720_video3.yuv    tmp.h264
1024x600.rgba        2.jpg                  tmp.h265
1280x720_video0.yuv  2560x1440_dcvideo.yuv  videotestsrc_1280x720.nv21
1280x720_video1.yuv  30s.wav
1280x720_video2.yuv  test.mp3root@ok113i:/forlinx/media# fltest_decoderTest
INFO   : 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.20220506
decoderTest 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.yuv
new AWVideoDecoderImpl() version:V2.0.20220506
sdk_memory version:V2.0.20220506
DEBUG  : ionAlloc <__GetIonMemOpsS:833>: *** get __GetIonMemOpsS ***
INFO   : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,
DEBUG  : cedarc <VeInitialize:1347>: *** nPhyOffset = 0x0
DEBUG  : ionAlloc <ion_alloc_open2:177>: pid: 1559, g_context = 0x28b3b8DEBUG  : ionAlloc <ion_alloc_open2:204>: ion alloc open ok
DEBUG  : 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.conf
ERROR  : cedarc <DebugCheckConfig:316>: now cedarc log level:5
WARNING: 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:3
output file is saved:/tmp/

=============================================
视频解码h265

demoVdecoder 这个文件失败

==================================

ok113i:/forlinx/media# demoVdecoder -i /forlinx/media/tmp.h265 -o dec265.yuv
INFO   : 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.yuv
DEBUG  : ionAlloc <__GetIonMemOpsS:833>: *** get __GetIonMemOpsS ***
INFO   : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,
DEBUG  : cedarc <VeInitialize:1347>: *** nPhyOffset = 0x0
DEBUG  : 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 265
int 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'

=============================================
测试解码效果

play.png

./decoderTest265
INFO   : 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.20220506
intputFile  :/tmp/tmp.h265
outputFile  :/tmp/d5_out.yuv
[D]singleDecoderTest             ================================
[D]singleDecoderTest             ====     CedarC  Decoder    ====
[D]singleDecoderTest             ====  singleDecoderTest cbk ====
[D]singleDecoderTest             ================================
new AWVideoDecoderImpl() version:V2.0.20220506
sdk_memory version:V2.0.20220506
DEBUG  : ionAlloc <__GetIonMemOpsS:833>: *** get __GetIonMemOpsS ***
INFO   : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,
DEBUG  : cedarc <VeInitialize:1347>: *** nPhyOffset = 0x0
DEBUG  : ionAlloc <ion_alloc_open2:177>: pid: 1597, g_context = 0x198c480DEBUG  : ionAlloc <ion_alloc_open2:204>: ion alloc open ok
DEBUG  : 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.conf
ERROR  : cedarc <DebugCheckConfig:316>: now cedarc log level:5
WARNING: 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.yuv
output file is saved:/tmp/d5_out.yuv
~ AWVideoDecoderImpl()
Test 1 times.

=============================================
视频编码

root@ok113i:/forlinx/media# encoderTest
encoderTest version:V2.0.2022050[ 5100.284684] VE: VE real_freq=576000000
[ 5100.284684]
6
intputFile /tmp/800_480.yuv
outputFile /tmp/enc720_30p.265
outputFile  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:800x480
sdk_memory version:V2.0.20220506
INFO   : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,
[D]encodeFile malloc pIonMem->vir=0xb6a63000!
new AWVideoEncoderImpl() version:V2.0.20220506
sdk_memory version:V2.0.20220506
INFO   : 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:800x480
output file is saved:/tmp/enc720_30p.265
Test 1 times.

编码失败,文件为0

=============================================
音频编码

root@ok113i:/forlinx/media# cp 30s.wav /tmp/test.wav
root@ok113i:/forlinx/media# audioenc_test
INFO   : 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:4
audioenc test version:V2.0.20220506
12-20 18:48:57.953  AudioEnc(W) : AudioEncInit success
fopen /tmp/test.wav OK
fopen /tmp/test.mp3 ok
12-20 18:48:57.955  AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW
12-20 18:48:58.001  AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW
12-20 18:49:05.031  AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW
12-20 18:49:05.077  AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW
12-20 18:49:05.123  AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW
12-20 18:49:05.169  AudioEnc(E) : audio encode ERR_AUDIO_ENC_PCMUNDERFLOW
file end exit.
audioenc test run finish

=============================================
音频解码

下图是
fltest_qt_musicplayer

微信图片_20231220112009.jpg

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:4
set 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   : cedarx
branch: stable_v2.8_common
commit: 967535b8ff6a073cb4f38e85a4ae5fa6008014d8
date  : 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.20220506
init chwd sucess !
(HwDisplay 279)
(hwd_init 1258)
[2023-12-20 19:02:26] DEBUG  : awplayer <LayerCreate_DE:1593>: screen:w 1024, screen:h 600 disp
sdk_memory version:V2.0.20220506
DEBUG  : ionAlloc <__GetIonMemOpsS:833>: *** get __GetIonMemOpsS ***
INFO   : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,
DEBUG  : cedarc <VeInitialize:1347>: *** nPhyOffset = 0x0
DEBUG  : 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: 0
rintMediaInfo 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: 4
12-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: 0
PlayerStart: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.2
branch: new
commit: 3ba65962c01cbf1280ddda19d843009b6ef8ce85
date  : 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都可以运行,但是具体的编码格式没有详细测试。

如有错误,欢迎指正,一起学习

原贴链接:OK113i-S开发板-4视频编解码测试 | 全志在线开发者论坛
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com
全志及开发者最新动态可以关注全志在线微信公众号

相关文章:

【飞凌 OK113i-C 全志T113-i开发板】视频编解码测试

前言 本文测试OK113i-S开发板-视频编解码的功能 OK113i-S开发板是支持视频的编解码的&#xff0c;下面是官方介绍的编解码功能 T113-i 是一种为多媒体解码平台设计的高级应用处理器。T113-i 集成了64位玄铁C906 RISC-V CPU&#xff0c; 双核 Cortex - A7 CPU 和 HiFi4 DSP&a…...

全部没有问题 (一.5)

java mooc练习 基础练习&#xff1a; 进阶练习&#xff1a; final 赋值一次 局部 必须赋值 抽象类 多态测试 package com.book;public class moocDraft1 {static int variable1;public void fatherMethod(moocDraft1 a){System.out.println(variable);}public static void…...

C++归并排序详解以及代码实现

1. 介绍 归并排序&#xff08;Merge Sort&#xff09;是一种采用分治法&#xff08;Divide and Conquer&#xff09;策略的排序算法。该算法首先将已有序的子序列合并&#xff0c;得到完全有序的序列。在归并排序中&#xff0c;合并操作是将两个有序表合并成一个有序表的过程。…...

springboot整合JPA 多表关联 :一对多 多对多

补充一下自定义SQL 这是连表查询&#xff0c;可以任意查出字符&#xff0c;用Map接收 Testvoid test3() {JPAQueryFactory jpaQueryFactory new JPAQueryFactory(em);QStudent student QStudent.student;QMessage message QMessage.message;//constructor(StuMesDto.class, …...

Python 数据分析 Matplotlib篇 plt.rcParams 字典(第5讲)

Python 数据分析 Matplotlib篇 plt.rcParams字典(第5讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…...

DeamonSet详解

目录 1.1 何为DaemonSet 1.2 DaemonSet 的 API 对象的定义 1.3 DaemonSet实践 1.3.1 创建 DaemonSet 对象 1.3.2 查看 DaemonSet 对象 1.3.3 DaemonSet 版本管理 1.3.4 DaemonSet 的容器镜像版本到 v2.2.0 1.1 何为DaemonSet 介绍DaemonSet我们先来思考一个问题&#x…...

TwIST算法MALTLAB主程序详解

TwIST算法MALTLAB主程序详解 关于TwIST算法的具体原理可以参考&#xff1a; 链接: https://ieeexplore.ieee.org/abstract/document/4358846 链接: https://blog.csdn.net/jbb0523/article/details/52193209 该算法的MATLAB源代码&#xff1a; 链接: http://www.lx.it.pt/~bi…...

Flutter 三: Dart

1 数据类型 数字(number) int double 字符串转换成 num int.parse(“1”) double.parse(“1”);double 四舍五入保留两位小数 toStringAsFixed(2) 返回值为stringdouble 直接舍弃小数点后几位的数据 可使用字符串截取的方式 字符串(string) 单引号 双引号 三引号三引号 可以输…...

redis基本用法学习(C#调用FreeRedis操作redis)

FreeRedis属于常用的基于.net的redis客户端&#xff0c;EasyCaching中也提供适配FreeRedis的包。根据参考文献4中的说法&#xff0c;FreeRedis和CsRedis算是近亲&#xff08;都是GitHub中账号为2881099下的开源项目&#xff09;&#xff0c;因此其用法特别相似。FreeRedis的主要…...

Postman接口测试(超详细整理)

常用的接口测试工具主要有以下几种 Postman&#xff1a;简单方便的接口调试工具&#xff0c;便于分享和协作。具有接口调试&#xff0c;接口集管理&#xff0c;环境配置&#xff0c;参数化&#xff0c;断言&#xff0c;批量执行&#xff0c;录制接口&#xff0c;Mock Server, …...

【深入解析spring cloud gateway】12 gateway参数调优与分析

本节主要对网关主要的一些参数做一些解释说明&#xff0c;并用压测工具测试一下网关的接口&#xff0c;通过压测来验证参数配置是否合理 一、连接池参数 参数示例 spring:application:name: gatewaycloud:gateway:# http连接设置httpclient:# 全局的响应超时时间&#xff0c…...

Java继承,父类没有无参构造方法时,子类必须要显式调用父类的构造方法

在Java中&#xff0c;如果一个类没有定义任何构造函数&#xff0c;那么编译器会默认为这个类提供一个无参的构造函数。 这个隐式的构造函数在继承的时候&#xff0c;子类会在自己的构造方法里面默认的调用这个构造函数。 但是&#xff0c;如果我们在父类中定义了一个有参构造…...

Ubuntu 20.04使用Livox Mid-360

参考文章&#xff1a; Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO-CSDN博客 一&#xff1a;Livox mid 360驱动安装与测试 前言&#xff1a; Livox mid360需要使用Livox-SDK2&#xff0c;而非Livox-SDK&#xff0c;以及对应的livox_ros_driver2 。并需要修改FAST_LIO中部…...

C语言之冒泡排序

其实排序有很多的方法&#xff0c;比如&#xff1a;冒泡排序&#xff0c;插入排序&#xff0c;快速排序&#xff0c;归并排序&#xff0c;选择排序等。今天来讲一下最简单的排序&#xff1a;冒泡排序。这种排序的方法效率极其低下。 假设有一个整型数组&#xff1a; int arr[…...

在Linux上安装NVM(Node Version Manager)

在Linux系统上&#xff0c;使用NVM&#xff08;Node Version Manager&#xff09;是管理和切换Node.js版本的一种便捷方式。以下是在Linux上安装NVM的步骤&#xff1a; 1. 下载并安装NVM 使用curl或wget下载并运行NVM的安装脚本。选择一种方式执行以下命令之一&#xff1a; …...

常用两种Linux命令生成器

在Linux中&#xff0c;可以使用多种命令来生成随机密码。以下是其中两种常用的命令&#xff1a; 1.pwgen&#xff1a;这个命令可以生成随机、无意义的但容易发音的密码。生成的密码可以只包含小写字母、大小写混合或数字。大写字母和数字会以一种便于记忆的方式放置&#xff0…...

【OAuth2】授权框架的四种授权方式详解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《OAuth 2》。&#x1f3af;&#x1f3af; &#x1…...

AI数字人不间断直播是什么?数字人直播带货如何搭建?

随着电商行业的崛起&#xff0c;数字人直播成为了最为热门的直播方式之一。数字人直播利用AI技术创建出的数字人进行直播&#xff0c;给观众带来了全新的视觉体验。 一、AI数字人无限播&#xff08;数字人SaaS系统VX&#xff1a;zhibo175&#xff09;是什么&#xff1f; AI数字…...

真菌基因组研究高分策略(二):比较基因组揭示寄主外生菌根真菌基因组的动态进化

在表征外生菌根&#xff08;ECM&#xff09;真菌的“共生工具包”方面的研究已经取得了重大进展&#xff0c;但宿主特异性如何被编码到ECM真菌基因组中仍知之甚少。2021年发表于《New Phytologist》期刊的文章对ECM真菌宿主特异性和通用性进行了比较基因组分析&#xff0c;重点…...

uni-app之HelloWorld实现

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…...

CVE-2023-49898 Apache incubator-streampark 远程命令执行漏洞

项目介绍 Apache Flink 和 Apache Spark 被广泛用作下一代大数据流计算引擎。基于大量优秀经验结合最佳实践&#xff0c;我们将任务部署和运行时参数提取到配置文件中。这样&#xff0c;带有开箱即用连接器的易于使用的 RuntimeContext 将带来更轻松、更高效的任务开发体验。它…...

即将来临的2024年,汽车战场再起波澜?

我们来简要概况一下11月主流车企的销量表现&#xff1a; 根据数据显示&#xff0c;11月吉利集团总销量29.32万辆&#xff0c;同比增长28%。这在当月国内主流车企中综合实力凌厉&#xff0c;可谓表现得体。而与吉利直接竞争的比亚迪&#xff0c;尽管数据未公布&#xff0c;但我们…...

Python 爬虫之下载视频(二)

爬取某Y的视频链接和标题 文章目录 爬取某Y的视频链接和标题前言一、基本思路二、程序解析阶段三、程序处理阶段总结 前言 这篇内容就简单给大家写个如何从网页上爬取某B主 主页 页面上所有的视频链接和视频标题。 这篇是基础好好看&#xff0c;下篇会根据这篇的结果做一个批…...

智能优化算法应用:基于原子轨道搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于原子轨道搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于原子轨道搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.原子轨道搜索算法4.实验参数设定…...

[机器人-2]:开源MIT Min cheetah机械狗设计(二):机械结构设计

目录 1、四肢朝向的选择 2、电机布局形式的选择 3、电机的选型及测试&#xff08;非常重要&#xff09; 4、结构优化 5、尺寸效应 6、其他 1、四肢朝向的选择 机械狗的结构设计&#xff0c;第一个摆在我们面前的就说四肢的朝向问题&#xff0c;如下图&#xff0c;我们是…...

用友U8+CRM help2 任意文件读取漏洞复现

0x01 产品简介 用友U8 CRM客户关系管理系统是一款专业的企业级CRM软件&#xff0c;旨在帮助企业高效管理客户关系、提升销售业绩和提供优质的客户服务。 0x02 漏洞概述 用友 U8 CRM客户关系管理系统 help2接口处存在任意文件读取漏洞&#xff0c;攻击者通过漏洞可以获取到服…...

freeRTOS实时操作系统学习笔记

温馨提示&#xff1a;点击图片查看大图更清晰 —————————————————————————————↑↑↑上方资源下载后可获取xmind原文件。 1、freeRTOS移植和配置脑图 2、内核源码学习...

解决虚拟机卡顿、卡死、待机后不动的情况(真实有效

本人环境&#xff1a; VM workstation 17.5 ubuntu 22.04 虚拟机配置&#xff1a;4核 4g issue&#xff1a; 出现开机卡死不动运行一段时间&#xff0c;可能半小时不到&#xff0c;就页面卡死不动经常需要关机重启才解决&#xff0c;可能没有解决 1.配置虚拟化引擎 这一步我称…...

【MybatisPlus快速入门】(3)SpringBoot整合MybatisPlus 之 Lombok插件安装及MybatisPlus分页代码示例

目录 1.Lombok1.1 步骤1:添加lombok依赖 2.2 步骤2:安装Lombok的插件1.3 步骤3:模型类上添加注解2 分页功能2.1 步骤1:调用方法传入参数获取返回值2.2步骤2:设置分页拦截器2.3 步骤3:运行测试程序 之前我们已学习MyBatisPlus在代码示例与MyBatisPlus的简介&#xff0c;在这一节…...

SpaceDesk如何连接平板/PC(生产力副屏)

1、下载安装 分为安卓端和PC端&#xff0c;两个设备都需要安装对应的软件。 SpaceDesk官网 https://link.zhihu.com/?targethttp%3A//spacedesk.net/ 需要魔法上网。安装过程比较简单&#xff0c;无脑下一步即可。 我已经把安装包准备好了&#xff0c;如果不想自己找&#…...

61.SVN版本控制系统

SVN&#xff08;Subversion&#xff09;是一种集中式版本控制系统&#xff0c;它有一个中央仓库用于存储代码库的完整历史记录。相对于分布式版本控制系统&#xff08;例如 Git&#xff09;&#xff0c;SVN 不支持本地仓库。 一、SVN 安装。 &#xff08;1&#xff09;在windo…...

操作系统 内存管理篇

一.程序的装入和链接 装入方式&#xff1a; 链接方式&#xff1a; 二.进程的内存映像 三.内存的分配 1.连续分配 分配方式&#xff1a; 2.不连续分配 分页&#xff1a;页面大小一致 引入快表&#xff08;和 cache 处理思路一致&#xff09; 升级到二级页表 分段&#xff1a;…...

深度学习中用来训练的train.py 探究学习2.0( 数据预处理)

数据预处理 下列代码为train.py中常见的一些数据处理方法 train_transform transforms.Compose([transforms.Resize((224, 224)),transforms.RandomVerticalFlip(),# 随机旋转&#xff0c;-45度到45度之间随机选transforms.RandomRotation(45),# 从中心开始裁剪transforms.C…...

vscode debug c++代码

需要提前写好CMakeLists.txt 在tasks.json中写好编译的步骤&#xff0c;即tasks&#xff0c;如cmake … 和make -j 在lauch.json中配置可执行文件的路径和需要执行tasks中的哪一个任务 具体步骤&#xff1a; 1.写好c代码和CMakeLists.txt 2.配置tasks.json 终端–>配置任务…...

HarmonyOS的功能及场景应用

一、基本介绍 鸿蒙HarmonyOS主要应用的设备包括智慧屏、平板、手表、智能音箱、IoT设备等。具体来说&#xff0c;鸿蒙系统是一款面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统&#xff0c;能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备…...

汽车级EEPROM 存储器 M24C64-DRMN3TP/K是电可擦除可编程只读存储器?它的功能特性有哪些?

M24C64-DRMN3TP/K是一款64 Kbit串行EEPROM汽车级设备&#xff0c;工作温度高达125C。符合汽车标准AEC-Q100 1级规定的极高可靠性。 该设备可通过一个高达1MHz的简单串行I2C兼容接口访问。 存储器阵列基于先进的真EEPROM技术&#xff08;电可擦除可编程存储器&#xff09;。M2…...

VS Code无法远程ubuntu

①windows下cmd中执行命令&#xff1a; ssh-keygen -t rsa -C "xxxxxx.com" ②ubuntu 下bash 命令 ssh-keygen -t rsa -C "xxxxxx.com" ③cat id_rsa.pub >> ~/.ssh/authorized_keys ④ C:\Users\Administrator\AppData\Roaming\Code\User\set…...

大数据开发职业规划

大数据开发职业规划 我的学历是双非本&#xff0c;在学校学习的是大数据专业&#xff0c;目前是在企业做大数据全栈的工作&#xff0c;爬虫&#xff0c;数仓&#xff0c;风控项目&#xff0c;etl开发都做 .................................................................…...

XxIJob入门-示例

一、部署 xxlJob (一) 下载地址&#xff0c; git clone 到本地。 http://gitee.com/xuxueli0323/xxl-job https://github.com/xuxueli/xxl-job (二) 插入 xxl_job 的sql脚本&#xff1a; 在项目的 /xxl-job/doc/db/tables_xxl_job.sql &#xff0c;找到sql脚本&#xff0c…...

单挑力扣(LeetCode)SQL题:1549. 每件商品的最新订单(难度:中等)

相信很多学习SQL的小伙伴都面临这样的困境&#xff0c;学习完书本上的SQL基础知识后&#xff0c;一方面想测试下自己的水平&#xff1b;另一方面想进一步提升&#xff0c;却不知道方法。 其实&#xff0c;对于技能型知识&#xff0c;我的观点一贯都是&#xff1a;多练习、多实…...

Javacv-利用Netty实现推流直播复用(flv)

前言 上一篇文章《JavaCV之rtmp推流&#xff08;FLV和M3U8&#xff09;》介绍了javacv的基本使用&#xff0c;今天来讲讲如何实现推流复用。 以监控摄像头的直播为例&#xff0c;通常分为三步&#xff1a; 从设备获取音视频流利用javacv进行解码&#xff08;例如flv或m3u8&am…...

cfa一级考生复习经验分享系列(十一)

理工科已经毕业&#xff0c;正在工作&#xff0c;毫无金融背景。一共准备了四个月&#xff0c;每天下班和周末抽时间看看。前三个月节奏比较松散&#xff0c;毕竟时不时有人叫我出去high&#xff0c;最后一个月认真看了看。 用到的资料 JC网课&#xff0c;官方Mock&#xff0c;…...

Nginx基本配置内容

http 模块适用于处理 Web 请求&#xff0c;而 stream 模块适用于处理非 HTTP 流量&#xff0c;如数据库连接、邮件传输等。 在 stream 模块中&#xff0c;你可以配置一些 TCP 或 UDP 的代理服务&#xff0c;以便 Nginx 能够转发这些流量。 与网站相关的 关于网站相关的要写在ht…...

Jenkins安装与设置(插件安装失败,版本问题解决)

早期的使用docker安装jenkins的方法会出现插件无法安装的问题&#xff0c;是由于docker拉取的jenkins版本太低了 jdk安装 Linux系统安装JDK1.8 详细流程 maven安装&#xff1a; centos7下安装Maven 使用docker进行安装jenkins&#xff1a; 先把镜像和容器卸干净 docker ps -a…...

精度提升10个点!HD-Painter:无需训练的文本引导高分辨率图像修复方案!

基于文本到图像扩散模型的空前成功&#xff0c;在文本引导的图像修复方面取得了最新进展&#xff0c;取得了异常逼真和视觉上可靠的结果。然而&#xff0c;目前的文本到图像修复模型仍然存在显著的改进潜力&#xff0c;特别是在更好地与用户提示对齐和执行高分辨率修复方面。因…...

javaweb初体验

javaweb初体验 文章目录 javaweb初体验前言一、流程&#xff1a;1.创建Maven的父工程2.创建Maven&#xff0c;Webapp的子工程3.在pom.xml文件中添加依赖&#xff08;父工程与子工程共用&#xff09;4.写一个helloservlet类实现httpservlet接口&#xff0c;重写doget&#xff0c…...

手写爬虫框架

前言 参照了Scrapy、Feapder的设计模式&#xff0c;实现的一个轻量级爬虫框架&#xff08;目前约200行代码&#xff09; 源码地址 https://gitee.com/markadc/pader 项目持续更新中…...

基于Kettle和帆软Finereport的血缘解析

一、背景&#xff1a; 用户经常会针对数据存在质量的存疑&#xff0c;反馈数据不准。开发人员排查数据质量问题步骤&#xff1a;首先和业务人员对接了解是哪里数据不准确&#xff0c;要定位是哪张报表&#xff0c;然后查看报表后面数据来源&#xff0c;然后一路排查数仓。往往定…...

给qemu虚机更换(Windows PE)光盘

1. 背景 qemu虚机里运行windows。如果遇到虚机windows启动故障&#xff0c;甚至连安全模式也故障时&#xff0c;可以尝试更换另一个光驱里的光盘为pe光盘。 2. 步骤 2.1. 找出VDI虚机所在的计算节点 ssh登录之&#xff0c;virsh list获得虚机id&#xff0c;例如 391 1255…...

python 神经网络归纳

CNN卷积神经网络 一个卷积神经网络主要由以下5层组成&#xff1a; 数据输入层/ Input layer卷积计算层/ CONV layerReLU激励层 / ReLU layer池化层 / Pooling layer全连接层 / FC layer 1. 数据输入层 该层要做的处理主要是对原始图像数据进行预处理&#xff0c;其中包括&…...