ThrottleStop

ThrottleStop

0个粉丝

4

问答

0

专栏

0

资料

ThrottleStop  发布于  2021-09-07 08:59:09
采纳率 25%
4个问答
一心只想成为奋斗B
2233

HI3516中OSD叠加之后前面几秒正常画面,后面的画面却好像进行了压缩,快进播放

     
HI_S32 SAMPLE_REGION_VI_VPSS_VENC(HI_S32 HandleNum,RGN_TYPE_E  enType,MPP_CHN_S *pstChn)
{
    HI_S32         i;
    HI_S32         s32Ret;
    HI_S32         MinHandle;
    pthread_t      gtpid;

    s32Ret = SAMPLE_REGION_MPP_VI_VPSS_VENC_START();
    if(HI_SUCCESS != s32Ret)
    {
        return  s32Ret;
    }
    s32Ret = SAMPLE_COMM_REGION_Create(HandleNum,enType);
    if(HI_SUCCESS != s32Ret)
    {
        SAMPLE_PRT("SAMPLE_COMM_REGION_Create failed!\n");
        goto EXIT1;
    }
    s32Ret = SAMPLE_COMM_REGION_AttachToChn(HandleNum,enType,pstChn);
    if(HI_SUCCESS != s32Ret)
    {
        SAMPLE_PRT("SAMPLE_COMM_REGION_AttachToChn failed!\n");
        goto EXIT2;
    }

    MinHandle = SAMPLE_COMM_REGION_GetMinHandle(enType);
    status_RGN = HI_TRUE;

    pthread_create(&gtpid,0,UpdateBMP,(HI_VOID*)&MinHandle);
    PAUSE();

    status_RGN = HI_FALSE;
    pthread_join(gtpid,NULL);

 EXIT2:
    s32Ret = SAMPLE_COMM_REGION_DetachFrmChn(HandleNum,enType,pstChn);
    if(HI_SUCCESS!= s32Ret)
    {
        SAMPLE_PRT("SAMPLE_COMM_REGION_AttachToChn failed!\n");
    } 
EXIT1:
    s32Ret = SAMPLE_COMM_REGION_Destroy(HandleNum,enType);
    if(HI_SUCCESS != s32Ret)
    {
        SAMPLE_PRT("SAMPLE_COMM_REGION_AttachToChn failed!\n");
    }
    SAMPLE_REGION_MPP_VI_VPSS_VENC_END();
    return s32Ret;
}

下面是我的字库线程函数处理部分重要代码
        temp = SDL_ConvertSurface(text, fmt, 0);
        if(text == NULL)
        {
            printf("%s:[%d] The text is NULL !\n",__FUNCTION__,__LINE__);
            return NULL;
        }

        SDL_SaveBMP(temp, "./res/mm.bmp");


        if (OVERLAY_RGN == *arg || OVERLAYEX_RGN == *arg)
        {
            for (i = 0; i < 1; i++)
            {
                s32Ret = SAMPLE_COMM_REGION_SetBitMap(i, PIXEL_FORMAT_ARGB_1555);
                if (HI_SUCCESS != s32Ret)
                {
                    SAMPLE_PRT("SAMPLE_COMM_REGION_SetBitMap failed!\n"); 
                }
            }
        }

出现的具体状况就是程序运行后,前面10秒左右的画面是正常的,并且OSD显示的时间戳也是跟着变换的,但是10s后,写入文件的数据变得极其缓慢。后面打开视频文件发现后面的内存全部压缩到一块,画面跟快进一样。

我来回答
回答6个
时间排序
认可量排序

ThrottleStop

0个粉丝

4

问答

0

专栏

0

资料

ThrottleStop 2021-09-07 09:01:27
认可0

求大佬解答一下,我sample的region是正常运行的画面也是对的,但是我改成实时更换OSD时间戳后就出现问题了。

横贯八方

5个粉丝

34

问答

0

专栏

3

资料

横贯八方 2021-09-07 09:32:28
认可0

没遇到过这种情况

横贯八方

5个粉丝

34

问答

0

专栏

3

资料

横贯八方 2021-09-07 09:33:08
认可0

按楼主描述的,会不会是什么东西导致内存货cpu被占满了

ThrottleStop

0个粉丝

4

问答

0

专栏

0

资料

ThrottleStop 2021-09-07 11:13:02
认可0

按楼主描述的,会不会是什么东西导致内存货cpu被占满了

但是正常的OSD显示是正常的呀,我用一个线程不断更新BMP并SetBitMap却会出现这个清况
一般是怎么处理的,难道连创建通道也要一直循环?

横贯八方

5个粉丝

34

问答

0

专栏

3

资料

横贯八方 2021-09-08 09:06:29
认可2

思路和你一样,线程里每一秒钟获取一次时间,就用字符库获取对应时间字符串的位图数据,然后实质上只需要调用HI_MPI_SetBitMap,会不会函数 SAMPLE_COMM_REGION_SetBitMap 里面,有多余的操作影响到了

ThrottleStop

0个粉丝

4

问答

0

专栏

0

资料

ThrottleStop 2021-09-16 14:14:21
认可0

已解决了是内存被temp占满了,需要每次都释放掉SDL_ConvertSurface()返回的temp和text

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区