找回密码
 注册
关于网站域名变更的通知
查看: 336|回复: 1
打印 上一主题 下一主题

在ARM上对正在播放的视频文件进行截屏时挂掉,但截静态图片是成功的,这是什么原因?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-12-5 16:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

ARM上对正在播放的视频文件进行截屏时挂掉啦, 但是截取静态图片是成功的。以下是代码, 求高手指教!~4 l+ Z" y+ J2 A) x# G  G. S, s


7 l1 k- c8 i* f7 V; k

3 s( o+ s0 {; M+ r. C

struct fb_fix_screeninfo finfo;
, D9 i0 N( O1 O8 T% V9 Fstruct fb_var_screeninfo vinfo;1 Z% n* ?+ t6 i  s: c2 c
uchar *frameBuffer = NULL;
! c. x; `5 C  q8 c# A+ tlong int screensize = 0;. V. H# R) z, y& S% ^
8 @( H1 O% r1 h- A7 z- [# X
(fb0里是普通静态画面的缓冲设备, fb1是视频播放时的缓冲设备)" y5 G7 h, R! J3 H0 o+ Y$ y
qint32 fd = open("/dev/graphics/fb1", O_RDONLY);3 ]* j( t( X9 p, j1 s* y$ Z. X
if (fd < 0) {
! q& }" o6 A+ g* e) |3 U    fd = open("/dev/fb", O_RDONLY);
+ x  l; b3 l1 {3 c3 e; V9 ?, @    if (fd < 0) {
# \& Z, y9 k8 C& R' z        return false;
% G. H, p% L6 j; p! \; r4 Y    }
% T1 ~& K$ K* ~; M% S/ s! B+ `}5 p, ~; i3 \8 L, p( I: z/ f1 x' H

+ P. ]7 d6 S: @+ }2 e6 ?! wif (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)<0) {1 D/ j- p% k" D! `( v- a
    return false;" a% z- T( L+ T1 r5 M3 d
}0 E' v, N4 e2 a/ L$ `0 d

6 p+ h/ p. Y$ Z/ Z. @" Q9 e/ e0 \if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)<0) {
5 g2 e4 p, u$ e5 A9 V8 y$ e' n% N+ N    return false;' ^) s  j- |: n
}
. M2 y0 j5 D* t; \/ f6 k2 [4 x# [  j& I
screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8;# r7 ?+ V$ ?% n2 q* S
int curViewOffset = vinfo.yoffset/480;
- {6 j' I. U, x* ^
7 y# b$ q& F; G" Y$ AframeBuffer = (uchar *) mmap(0, /* start */% @; b2 X/ \( d, `; g9 s6 }& `
                         screensize, /* bytes */
, c; s  H2 {/ H9 O3 m6 j. k, M                         PROT_READ, /* prot */1 H7 z, e5 W5 D7 A6 j
                         MAP_SHARED, /* flags */# f) l* Y3 N; ]7 X- n
                         fd, /* fd */) M1 Y7 L2 c. Q& k$ c
                         screensize * curViewOffset /* offset */);
3 C; V3 x9 z  O6 g/ H  g( s: |% l" B0 y, S! X. t. M* v
if (MAP_FAILED == frameBuffer) {
; ^, ~% m: R! Z4 t7 O  E( n    return false;
5 d$ u+ i6 x. H}' d9 j2 }$ M8 a7 R' e; @1 F
% c, n+ O8 J9 m6 t+ {$ q7 H
只要对frameBuffer进行读取就死机!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 12:48 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表