elyotna / linux Goto Github PK
View Code? Open in Web Editor NEWThis project forked from torvalds/linux
Hacking in a V4L2 M2M decoder for AMLogic SoCs
License: Other
This project forked from torvalds/linux
Hacking in a V4L2 M2M decoder for AMLogic SoCs
License: Other
Hi Maxime,
I have made some decode test on my boards. Beelink MiniMX is a p200 based TV Box. Has 1GB RAM. I'm using 150balbes kernel 5.0.2+. I tried some jellyfish test video and 4k uhd decode failed:
[ 175.250150] cma: cma_alloc: alloc failed, req-size: 1016 pages, ret: -12
[ 175.282979] cma: cma_alloc: alloc failed, req-size: 2032 pages, ret: -12
[ 175.284084] WARNING: CPU: 1 PID: 954 at mm/page_alloc.c:4529 _alloc_pages_nodemask+0x8a0/0xc84
[ 175.292663] Modules linked in: xt_tcpudp ipt_REJECT nf_reject_ipv4 xt_conntrack ebtable_nat iptable_nat nf_nat_ipv4 nf_nat iptable_mangle iptable_raw iptable_se
curity nf_conntrack nf_defrag_ipv4 ip_set nfnetlink ebtable_filter ebtables iptable_filter brcmfmac brcmutil cfg80211 rfkill snd_soc_meson_aiu_spdif snd_soc_meson
aiu_i2s crct10dif_ce meson_vdec videobuf2_dma_contig v4l2_mem2mem videobuf2_memops videobuf2_v4l2 videobuf2_common meson_rng rng_core dw_hdmi_cec ao_cec videodev p
wm_meson meson_ir snd_soc_meson_audio_core media scpi_hwmon adc_keys input_polldev lz4 lz4_compress zram sch_fq_codel ip_tables x_tables
[ 175.346740] CPU: 1 PID: 954 Comm: ffmpeg Not tainted 5.0.2+ #5
[ 175.352514] Hardware name: Beelink MiniMX gxbb TV Box (DT)
[ 175.357950] pstate: 20000005 (nzCv daif -PAN -UAO)
[ 175.362696] pc : __alloc_pages_nodemask+0x8a0/0xc84
[ 175.367524] lr : __dma_direct_alloc_pages+0xc4/0x204
[ 175.372437] sp : ffff0000104fb6b0
[ 175.375715] x29: ffff0000104fb6b0 x28: ffff800002de3800
[ 175.380976] x27: ffff000011ecd000 x26: 00000000000007f0
[ 175.386237] x25: ffff000011dd9000 x24: 0000000000000005
[ 175.391498] x23: 00000000007f0000 x22: 00000000ffffffff
[ 175.396759] x21: 0000000000000000 x20: ffff8000261b2c10
[ 175.402021] x19: 000000000000000b x18: ffff000011ecd000
[ 175.407282] x17: 0000000000000001 x16: 0000000000000000
[ 175.412543] x15: 0000000000000068 x14: 00000000007f0000
[ 175.417805] x13: ffff000011cfb408 x12: 2c4756252cc39200
[ 175.423066] x11: ffff0000104fb4a0 x10: 0000000000000174
[ 175.428327] x9 : ffff000011ee66a8 x8 : 32312d203a746572
[ 175.433588] x7 : 202c736567617020 x6 : ffff800026bbf7d0
[ 175.438849] x5 : 0000000000000000 x4 : 0000000000000000
[ 175.444111] x3 : 0000000000000000 x2 : ffff0000104fb7d0
[ 175.449372] x1 : ffff0000104fb7c0 x0 : 00000000006000c4
[ 175.454634] Call trace:
[ 175.457051] __alloc_pages_nodemask+0x8a0/0xc84
[ 175.461535] __dma_direct_alloc_pages+0xc4/0x204
[ 175.466107] arch_dma_alloc+0x5c/0x1a4
[ 175.469815] dma_direct_alloc+0x20/0x28
[ 175.473610] dma_alloc_attrs+0x78/0xf8
[ 175.477324] vb2_dc_alloc+0x6c/0x120 [videobuf2_dma_contig]
[ 175.482846] __vb2_queue_alloc+0x1bc/0x5d0 [videobuf2_common]
[ 175.488535] vb2_core_reqbufs+0x23c/0x43c [videobuf2_common]
[ 175.494145] vb2_reqbufs+0x4c/0x5c [videobuf2_v4l2]
[ 175.498975] v4l2_m2m_reqbufs+0x30/0x5c [v4l2_mem2mem]
[ 175.504060] v4l2_m2m_ioctl_reqbufs+0x14/0x1c [v4l2_mem2mem]
[ 175.509691] v4l_reqbufs+0x4c/0x58 [videodev]
[ 175.513992] __video_do_ioctl+0x1f4/0x3f0 [videodev]
[ 175.518908] video_usercopy+0x23c/0x4e0 [videodev]
[ 175.523652] video_ioctl2+0x14/0x1c [videodev]
[ 175.528051] v4l2_ioctl+0x3c/0x5c [videodev]
[ 175.532263] do_vfs_ioctl+0xb8/0x8d4
[ 175.535796] ksys_ioctl+0x78/0xa8
[ 175.539074] __arm64_sys_ioctl+0x1c/0x28
[ 175.542958] el0_svc_common+0xb0/0x100
[ 175.546664] el0_svc_handler+0x70/0x88
[ 175.550373] el0_svc+0x8/0xc
[ 175.553218] ---[ end trace eb7fb4ee44870c16 ]---
this video is decoded successfully on my S905X box with the same kernel and same environment.
best regards, Gabor
I checked out your repository with cmd :
git clone --single-branch --branch mjourdan/v5.3/aml/vdec https://github.com/Elyotna/linux.git
The first issue I ran into is the missing "config VIDEO_MESON_VDEC" section at drivers/media/platform/Kconfig . Of course , the vdec dir. under meson folder is missing too. Is there a patch to apply these changes ?
The second issue is : can I put the generated Image directly to the /boot dir. of balbes150's armbian 5.96 ( kernel 5.3 ) ? Armbian system usually put the zImage at /boot and dbt at /boot/dtb/ folder. If not , is there any linux distro. recommended for the generated kernel and dtb ?
I'm working on some patches for the v4l2 decoder in ffmpeg, and in testing on rpi3/rpi4/lepotato I have noticed some unexpected behavior in how the meson-vdec driver behaves during decoding.
In short, ffmpeg will often hang indefinitely inside poll(POLLIN | POLLRDNORM | POLLPRI | POLLOUT | POLLWRNORM, -1)
. When the decoder is not able to produce frames, I would expect it to return with POLLOUT
set to indicate that it needs more data. This happens more readily when the driver is configured with fewer capture buffers (i.e. 8 output buffers and 2 capture buffers).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.