打印
[i.MX]

在i.MX6平台上用DirectFB库开发程序,在视频上添加字幕

[复制链接]
1375|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyzshark|  楼主 | 2015-3-4 18:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用DirectFB库,开发一个应用程序,显示中文“DirectFB 你好!”,然后和视频层一起运行,最后的结果在屏幕上播放视频,然后屏幕视频右上角显示“DirectFB 你好!”,请问我写的程序有什么问题,为什么播放视频时感觉视频和我写的层两者在抢用显卡呢?请问大家是什么问题,真的很感谢大家的回答,谢谢您了!求助!!!!!!!!!!!!!!!!!!
代码如下:
/*************************************************************************
> File Name: df_drawtext.c
> Author:
> Mail:
> Created Time: 2015年03月03日 星期二 14时37分05秒
************************************************************************/

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <directfb.h>

static IDirectFB *dfb = NULL;
static IDirectFBSurface *primary = NULL;
static int screen_width  = 0;
static int screen_height = 0;

#define DFBCHECK(x...)                                         \
        {                                                            \
         DFBResult err = x;                                         \
         \
         if (err != DFB_OK)                                         \
         {                                                        \
          fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__    ); \
          DirectFBErrorFatal( #x, err    );                         \
         }                                                        \
        }
static IDirectFBFont *font = NULL;
static char *text = "DirectFB 你好!";
int main (int argc, char **argv)
{
    int i, width;
    DFBFontDescription font_dsc;
    DFBSurfaceDescription dsc;
    DFBCHECK (DirectFBInit (&argc, &argv));
    DFBCHECK (DirectFBCreate (&dfb));
    DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));
    dsc.flags = DSDESC_CAPS;
    dsc.caps  = DSCAPS_PRIMARY | DSCAPS_FLIPPING;
    DFBCHECK (dfb->CreateSurface( dfb, &dsc, &primary ));
    DFBCHECK (primary->GetSize (primary, &screen_width, &screen_height));
    font_dsc.flags = DFDESC_HEIGHT;
    font_dsc.height = 48;
    DFBCHECK (dfb->CreateFont (dfb, "factory/fonts/truetype/simhei.ttf", &font_dsc, &font));
    DFBCHECK (primary->SetFont (primary, font));
    DFBCHECK (font->GetStringWidth (font, text, -1, &width));
    printf("screen_width=%d,screen_height=%d",screen_width,screen_height);

    for(i = screen_width; i>-width; i--)
  //  while(1)
    {
        DFBCHECK (primary->SetColor (primary, 0x0, 0x0, 0x0, 0));
        DFBCHECK (primary->FillRectangle (primary, 0, 0, screen_width, screen_height));
        DFBCHECK (primary->SetColor (primary, 0xff, 0x0, 0xff, 0xff));
    //    DFBCHECK (dfb->CreateFont (dfb, "factory/fonts/truetype/simhei.ttf", &font_dsc, &font));
    //    DFBCHECK (primary->SetFont (primary, font));
        DFBCHECK (primary->DrawString (primary, text, -1, i, screen_height / 2, DSTF_LEFT));
       // DFBCHECK (primary->DrawString (primary, text, -1, screen_width-100, screen_height/8, DSTF_TOPRIGHT));
        //DFBCHECK (primary->Flip (primary, NULL, DSFLIP_WAITFORSYNC));
        DFBCHECK (primary->Flip (primary, NULL, 0));

    }

    sleep(5);
   // while(1);
    font->Release (font);
    primary->Release (primary);
    dfb->Release (dfb);

    return 0;

}

相关帖子

沙发
zyzshark|  楼主 | 2015-3-5 11:49 | 只看该作者
欢迎大家的指导,哪怕一点点都可以,像可以介绍我应该看相关的什么书籍,还有好的资料都可以介绍给我的,最近新接触的DirectFB,知道的很少,谢谢大家的帮忙了!!!

使用特权

评论回复
板凳
FSL_TICS_Rita| | 2015-4-10 10:51 | 只看该作者
楼主你好,请问你这里使用的是哪个版本的BSP?哪块板子呢?很抱歉才给你回复哈,我前段时间出差了,刚回来,后面会继续帮大家解决问题,我们一起讨论学习哈~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝