ODROID XU4 s5p-mfc H264 DECODER/ENCODER DEMO exynos5422

先下载最新的ODROID xu4 镜像。
https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.14/20171213

一定要下载最新的。旧版本会出现驱动不兼容,出现以下bug:

mfc.c:mfc_create:85: error: Cannot subscribe EOS event for MFC
14583.706270073:mfc.c:mfc_create:87: MFC device /dev/video7 opened with fd=3
mfc.c:mfc_set_rate:144: error: Cannot set rate on 3
This is apparently related to the kernel version being too old:
https://patchwork.linuxtv.org/patch/21589/
According to the above post, the EOS error is fixed for kernel > 3.12

我用的img版本是:
ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz

之后,下载测试源码。博主只对encodec做了验证。
git clone https://github.com/abhijeet-dev/public-apps

拷贝到板子后,运行一下命令:

./mfc-encode  -m /dev/video11 -o test.h264 -c h264 -d 1000 -r 25 -s 1280x720

以上命令没有指定输入的摄像头。因为手头的摄像头有点问题,运行不起来。
如果没有指定输入摄像头,则输入默认为一下函数:

static int in_demo_read(struct io_dev *dev, int nbufs, char **bufs, int *lens)
{
    struct in_demo_priv *p;
    int x, y;
    int i, j;
    int size;
    double rx, ry;
    int t;
    p = dev->priv;
    if (nbufs != 2)
        return -1;
    t = dev->io[DIR_OUT].counter;
    size = p->width * p->height;
    if (size > lens[0] || size > 2 * lens[1]) {
        err("Size=%d len=%d,%d", size, lens[0], lens[1]);
        return -1;
    }
    memset(bufs[0], 0, size);
    memset(bufs[1], 128, size / 2);
    rx = cos(7 * t / 3.14 / 25 * 100 / p->width);
    ry = sin(6 * t / 3.14 / 25 * 100 / p->width);
    x = (rx + 1) / 2 * (p->width - 2 * SQUARE_SIZE) + SQUARE_SIZE;
    y = (ry + 1) / 2 * (p->height - 2 * SQUARE_SIZE) + SQUARE_SIZE;
    for (i = MIN(SQUARE_SIZE, p->width) - 1; i >= 0; --i)
        for (j = MIN(SQUARE_SIZE, p->height) - 1; j >= 0; --j)
            bufs[0][x + i + (y + j) * p->width] = 128;//255;
    return size;
}

最新的mfc驱动已经集成到v4l2驱动中。用以下命令可以看出decoder和encoder分别注册到那个v4l2驱动下。

[    3.373562] s5p-mfc 11000000.codec: decoder registered as /dev/video10
[    3.380006] s5p-mfc 11000000.codec: encoder registered as /dev/video11
Usage: ./mfc-encode [args]
        -i <device>   - FIMC camera device (e.g. /dev/video1)
                        If not specified demo input device is used
        -m <device>   - (required) MFC device (e.g. /dev/video8)
        -o <file>     - Output file name
        -c <codec>[,param[=val]]...
                      - The codec of the encoded stream optionally
                        followed by comma separated parameters.
                        Available codecs: mpeg4, h263, h264
        -d <duration> - Number of frames to encode
        -r <rate>     - Frame rate
        -s <size>     - Size of frame in format WxH
Codec parameters:

生成的test.h264用vlc播放效果如下图:

这里写图片描述
博主的需求是编码外部YUV数据,只需将in_demod.c里面的函数改为我的yuv输入即可。

                                        QQ:501930128
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Exynos 4412 RISC Microprocessor February 2012 1 PRODUCT OVERVIEW 2 BALL MAP AND DESCRIPTION 3 MEMORY MAP 4 CHIP ID 5 BOOTING SEQUENCE 6 GENERAL PURPOSE INPUT/OUTPUT (GPIO) CONTROL 7 CLOCK MANAGEMENT UNIT 8 POWER MANAGEMENT UNIT 9 INTERRUPT CONTROLLER 10 INTERRUPT COMBINER 11 DIRECT MEMORY ACCESS CONTROLLER (DMAC) 12 SYSTEM REGISTERS 13 CORESIGHT 14 TRUSTZONE PROTECTION CONTROLLER (TZPC) 15 TRUSTZONE ADDRESS ACCESS CONTROLLER (TZASC) 16 SYSTEM MEMORY MANAGEMENT UNIT 17 SYSTEM MEMORY MANAGEMENT UNIT 18 DYNAMIC MEMORY CONTROLLER 19 SROM CONTROLLER 20 NAND FLASH CONTROLLER 21 EXTERNAL BUS INTERFACE (EBI) 22 SECURE DIGITAL/MULTIMEDIACARD MMC CONTROLLER 23 MOBILE STORAGE HOST 24 PULSE WIDTH MODULATION TIMER 25 MULTI CORE TIMER (MCT) 26 WATCHDOG TIMER 27 REAL TIME CLOCK (RTC) 28 UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER 29 INTER-INTEGRATED CIRCUIT 30 SERIAL PERIPHERAL INTERFACE 31 USB 2.0 HOST CONTROLLER 32 USB2.0 DEVICE 33 TRANSPORT STREAM INTERFACE 34 AUDIO SUBSYSTEM 35 IIS MULTI AUDIO INTERFACE 36 IIS-BUS INTERFACE 37 AC97 CONTROLLER 38 PCM AUDIO INTERFACE 39 SPDIF TRANSMITTER 40 CHIP TO CHIP (C2C) 41 HIGH-SPEED SYNCHRONOUS SERIAL INTERFACE (HSI) 42 DISPLAY CONTROLLER 43 CAMERA INTERFACE AND SCALER 44 FIMC_LITE (CAMERA INTERFACE) 45 MIPI-DSI MASTER 46 MIPI-CSI SLAVE (MIPI-CSI) 47 2D GRAPHIC ACCELERATOR 48 3D GRAPHIC ACCELERATOR (G3D) 49 IMAGE ROTATOR 50 JPEG CODEC 51 MULTI FORMAT CODEC (MFC) 52 VIDEO PROCESSOR 53 MIXER 54 HIGH-DEFINITION MULTIMEDIA INTERFACE 55 SECURITY SUB SYSTEM 56 KEYPAD INTERFACE 57 ADC 58 THERMAL MANAGEMENT UNIT 59 FIMC-IS 60 ELECTRICAL DATA 61 MECHANICAL DATA

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值