yuv文件、check heap

本文介绍了一个用于从内存中获取YUV格式视频数据的函数get_mem_yuv,并展示了如何将这些数据写入文件。此外,还提供了一个CheckHeapHealth函数,用于验证进程中的所有堆是否处于健康状态。
void get_mem_yuv(unsigned char *data0,unsigned char *data1,unsigned char *data2,int linesize0,int linesize1,int linesize2,int w,int h)
{
 uint8_t *BufY = data0;
 uint8_t *BufU = data1;
 uint8_t *BufV = data2;
 FILE *fp = fopen("video.yuv","ab+");
 int i;
 for(i=0;i<h;i++)
 {
  fwrite(BufY + i * linesize0,1,w,fp);
 }
 for(i=0;i<h/2;i++)
 {
  fwrite(BufU + i * linesize1,1,w/2,fp);
 }
 for(i=0;i<h/2;i++)
 {
  fwrite(BufV + i * linesize2,1,w/2,fp);
 }
 fclose(fp);
}
void CheckHeapHealth()
{
    const int HEAP_NUMBER = 1024;
    HANDLE hHeaps[HEAP_NUMBER];
    int nHeaps = GetProcessHeaps(HEAP_NUMBER, hHeaps);
    if (nHeaps > 0)
    {
       for (int i = 0; i < nHeaps; i++)
       {
          if (HeapValidate(hHeaps[i], 0, NULL) == FALSE)
          {
              printf("f_CheckHeapHealth: i = %d\n", i);
             throw std::bad_exception();
          }
       }
    }
}
 
执行上述c++代码编译生成的程序报错mpp[26546]: mpp_info: mpp version: unknown mpp version for missing VCS info mpp[26546]: mpp_info: mpp version: unknown mpp version for missing VCS info mpp[26546]: mpp_info: mpp version: unknown mpp version for missing VCS info mpp[26546]: mpp_enc: invalid bit per second 3d0900:4000000 min 0:0 max 0:0 out of range 1K~200M mpp[26546]: mpp_enc: mpp_enc_proc_rc_cfg failed to accept new rc config mpp[26546]: h264e_api_v2: invalid size w:h [1920:1080] stride [0:0] mpp[26546]: h264e_api_v2: h264e_proc_prep_cfg failed to accept new prep config mpp[26546]: mpp: command 320001 param 0x558ac838c0 ret -6 mpp[26546]: mpp_dma_heap: Assertion fd_ext > 0 failed at os_allocator_dma_heap_import:278 mpp[26546]: mpp_dma_heap: Assertion data->fd > 0 failed at os_allocator_dma_heap_import:285 mpp[26546]: mpp_dma_heap: mmap failed: Bad file descriptor mpp[26546]: mpp_buffer: mpp_buffer_mmap buffer 0 group 9 fd -1 map failed caller mpp_packet_init_with_buffer mpp[26546]: mpp_buffer: Assertion p->info.ptr != __null failed at mpp_buffer_get_ptr_with_caller:178 mpp[26546]: mpp_buffer: mpp_buffer_get_ptr buffer 0x558ac9c688 ret NULL from mpp_packet_init_with_buffer mpp[26546]: mpp_dma_heap: Assertion fd_ext > 0 failed at os_allocator_dma_heap_import:278 mpp[26546]: mpp_dma_heap: Assertion data->fd > 0 failed at os_allocator_dma_heap_import:285 mpp[26546]: mpp_dma_heap: mmap failed: Bad file descriptor mpp[26546]: mpp_buffer: mpp_buffer_mmap buffer 1 group 9 fd -1 map failed caller mpp_packet_init_with_buffer mpp[26546]: mpp_buffer: Assertion p->info.ptr != __null failed at mpp_buffer_get_ptr_with_caller:178 mpp[26546]: mpp_buffer: mpp_buffer_get_ptr buffer 0x558ac9cba8 ret NULL from mpp_packet_init_with_buffer mpp[26546]: mpp_mem_pool: mpp_mem_pool_put_f invalid mem pool ptr 0x558ac9c908 node 0x558ac9c8e0 check (nil) mpp[26546]: mpp_dma_heap: Assertion fd_ext > 0 failed at os_allocator_dma_heap_import:278 mpp[26546]: mpp_dma_heap: Assertion data->fd > 0 failed at os_allocator_dma_heap_import:285 mpp[26546]: mpp_dma_heap: mmap failed: Bad file descriptor mpp[26546]: mpp_buffer: mpp_buffer_mmap buffer 2 group 9 fd -1 map failed caller mpp_packet_init_with_buffer Segmentation fault 怎么解决
最新发布
07-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值