Mac平台下搭建x264源码调试环境

x264介绍

  1. 概述
      x264始于2003年,从当开源社区的MPEG4-ASP编码器Xvid小有所成时开始的,经过几年的开发,特别是Dark Shikari加入开发后,x264逐渐成为了最好的视频编码器。Laurent Aimar是x264最初的开发者,在专职到ATEME后随即停止了开发。此工作随后由Loren Merritt接手。如今,x264到主要开发者是Loren Merritt, Fiona Glaser, Anton Mitrofanov和Henrik Gramner。
      x264作为目前性能最好最完善的h264编解码库,由大名鼎鼎的VLC播放器的维护机构,法国videolan开源组织维护的libx264编解码库。
  2. 下载地址:https://www.videolan.org/developers/x264.html
    在这里插入图片描述

调试环境搭建过程

  • 源码结构
    在这里插入图片描述
  • 编译x264生成可执行文件
    (1)打开x264源码中configure,修改CFLAGS=“-O1 -g $CFLAGS” 为 CFLAGS=“-O0 -g $CFLAGS”;
    (2)利用终端cd到源码目录,直接命令行:
./configure --enable-debug --enable-static
make -j8
  • 配置vscode调试环境
    (1)下载vscode、配置相关插件“C/C++”、“C/C++ Clang Command Adapter”等;
    (2)打开x264源码,键盘组合键⬆️+command+D,编辑launch.json
{
    
    
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
    
    
            "type": "cppdbg",
            "request": "launch",
            "name": "(lldb) Launch",
            "program": "${workspaceFolder}/x264",//x264是编译生成的可执行文件
            "args": ["--preset", "medium", "--fps", "15", "--crf", "27", "--input-res", "720x1280", 
                     "${workspaceFolder}/input.yuv",
                     "--output", "${workspaceFolder}/output.264"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb",
            "preLaunchTask": "debug"
        }
    ]
}

(3)组合键⬆️+command+B,编辑tasks.json

{
    
    
    "version": "2.0.0",
    "tasks": [
    {
    
    
    "label": "debug",
    "type": "shell",
    "command": "cd ${workspaceFolder} && make -j8",//-j8是多线程编译,如果打了断点无法调试,先make clean,然后再在终端cd到当前目录,执行--enable-debug,再执行make -j8
    "group": {
    
    
    "kind": "build",
    "isDefault": true
    }
    }
     ]
}

(4)点击debug按钮,就可以进行断点调试了
在这里插入图片描述
(5)结果
在这里插入图片描述
在这里插入图片描述

其他调试环境

  • clion
  • xcode
  • Qt Creator
  • gdb
    (网上可以查询到相关资料⛽️)

猜你喜欢

转载自blog.csdn.net/yanceyxin/article/details/126650628