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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

ARM上对正在播放的视频文件进行截屏时挂掉啦, 但是截取静态图片是成功的。以下是代码, 求高手指教!~! V% O9 H; T4 u& L6 U8 O; \


) R2 k0 a$ C( _4 C9 z; |

* K7 E8 @1 d' n( n- c% `

struct fb_fix_screeninfo finfo;
9 b+ Q" F8 M* N8 N  c2 d, rstruct fb_var_screeninfo vinfo;
4 y- t- I6 d: j3 Z& ]  j$ yuchar *frameBuffer = NULL;
, w: u3 b# K" W* R, M6 M6 {! D- F/ K1 }long int screensize = 0;
; C4 A$ T0 T5 @# _( v: X8 p! B* M: P$ v2 |" U
(fb0里是普通静态画面的缓冲设备, fb1是视频播放时的缓冲设备)1 b8 {7 ]6 [1 j4 G3 G* S/ |/ `8 j
qint32 fd = open("/dev/graphics/fb1", O_RDONLY);3 ?2 r) O7 P' x2 _8 w
if (fd < 0) {2 C2 _' }% X6 Z
    fd = open("/dev/fb", O_RDONLY);9 H$ ~$ l  u# W' c! F0 C5 _
    if (fd < 0) {" h( T* j, j1 y9 f5 U+ m6 w1 u
        return false;
2 i( W) }+ y9 @7 m3 o9 v    }) q; A- P& u5 W0 m& @* L7 l* \
}7 D8 z7 M) ~: k# d9 n

& J/ I* E; e2 h9 H: i$ Qif (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)<0) {
, |0 o1 p1 y1 [# S5 e% Z3 _0 ]    return false;; q' G  o9 P% a7 J& d* f3 H& D
}
% G! |+ j$ O- k
) I6 v, E( f1 Xif (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)<0) {
) G5 R. l  n3 }    return false;
9 h' o6 B. U6 P6 ?8 g. R4 J}8 U8 j. g5 T) O3 x$ l

: z4 W+ f' [: z  Z' u; x3 X) Oscreensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8;
; @& @, i, W& T4 Q" t7 pint curViewOffset = vinfo.yoffset/480;
" W$ O+ P' n5 k4 I% _1 m1 N, J: B$ C+ L* R
frameBuffer = (uchar *) mmap(0, /* start */+ b) c& Z/ l3 _( l: l* ^, D0 I. p1 s
                         screensize, /* bytes */% a0 X! G+ j% j1 {% `- `$ s# l
                         PROT_READ, /* prot */
$ p# s* b$ X5 [# w& o                         MAP_SHARED, /* flags */
# h" b) `! v2 o8 t9 v& ^3 ]                         fd, /* fd */
0 ?6 g1 P% \* Y& ^                         screensize * curViewOffset /* offset */);
* `( S( b7 G! b/ W
0 P9 N5 Q2 U+ X& zif (MAP_FAILED == frameBuffer) {4 A  f/ L3 w- I" z
    return false;' Z0 E6 v1 E. z" ]9 g
}
- b' y. Q7 S8 y5 o$ N! e0 E( |# ?
+ v3 ~9 U* h9 Y! i8 F只要对frameBuffer进行读取就死机!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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