240 发简信
IP属地:北京
  • 120
    Filament-绘制三角形

    1.前言 本文将使用Filament绘制纯色和彩色三角形 1.1Filament类图

  • 120
    swift-Enum

    RawValue swiftc -emit-sil main.swift sil源码: why? 源码展示调用_findStringSwitchCase.png实现_find...

  • 120
    swift-内存管理

    通过打印地址获取对象的内存分布 为啥 swift 类对象的引用计数是这样的呢: 0x0000000600000003? swift 类的初始化过程:查看 sil 文件:swi...

  • 120
    sil文件分析

    swiftc -emit-sil main.swift | xcrun swift-demangle如果编译有问题可以添加:swiftc -emit-sil main.swi...

  • 120
    Mach-o文件详解

    Mach-O文件格式 Header Load Commands load commnads紧跟在header之后,告诉内核和dyld,如何将App运行所需要的资源加载入内存中...

  • 120
    https - SSL/TSL

    1.Client Hello 2.Server Hello 3.Certificate 4.Server Key Exchange 5.Server Hello Done 6...

  • 120
    2.网络分层

    1.数据格式 2.网络层 3.传输层 1.UDP 2.TCP 1.建立连接 2.同意连接 3.断开链接 4.SACK

  • 1.Windows配置后台环境

    1.配置Java环境 a.下载JDKb.配置环境变量:JAVA_HOME: java安装路径在Path中添加%JAVA_HOME%\bin%JAVA_HOME%\jre\bi...

  • 120
    OpenGL ES for iOS - 8

    处理顶点数据的最佳实践 要使用 OpenGL ES 渲染帧,您的应用程序需要配置图形管道并提交要绘制的图形基元。在某些应用程序中,所有基元都使用相同的管道配置绘制;其他应用程...

  • 120
    OpenGL ES for iOS - 6

    OpenGL ES 设计指南 现在您已经掌握了在 iOS 应用程序中使用 OpenGL ES 的基础知识,请使用本章中的信息来帮助您设计应用程序的渲染引擎以获得更好的性能。本...

  • 大牛感觉这里有些问题

    if (needConvert) {
    if (pSwrCtx == NULL) {
    pSwrCtx = swr_alloc_set_opts(NULL, pCodecCtx->channel_layout, pCodecCtx->sample_fmt, pCodecCtx->sample_rate,
    srcFrame->channel_layout, (enum AVSampleFormat)srcFrame->format, srcFrame->sample_rate, 0, NULL);
    // pSwrCtx = swr_alloc();
    if (pSwrCtx == NULL) {
    LOGD("swr_alloc_set_opts() fail");
    return;
    }
    // av_opt_set_int(pSwrCtx,"in_channel_layout",srcFrame->channel_layout,AV_OPT_SEARCH_CHILDREN);
    // av_opt_set_sample_fmt(pSwrCtx,"in_sample_fmt",(enum AVSampleFormat)srcFrame->format,AV_OPT_SEARCH_CHILDREN);
    // av_opt_set_int(pSwrCtx,"in_sample_rate",srcFrame->sample_rate,AV_OPT_SEARCH_CHILDREN);
    // av_opt_set_int(pSwrCtx,"out_channel_layout",pCodecCtx->channel_layout,AV_OPT_SEARCH_CHILDREN);
    // av_opt_set_sample_fmt(pSwrCtx,"out_sample_fmt",pCodecCtx->sample_fmt,AV_OPT_SEARCH_CHILDREN);
    // av_opt_set_int(pSwrCtx,"out_sample_rate",pCodecCtx->sample_rate,AV_OPT_SEARCH_CHILDREN);
    //
    // ret = swr_init(pSwrCtx);
    // if (ret < 0) {
    // LOGD("swr_init fail");
    // return;
    // }
    }

    ret = av_frame_get_buffer(dstFrame,0);
    if (ret < 0) {
    LOGD("av_frame_get_buffer fail %d",ret);
    return;
    }
    ret = av_frame_make_writable(dstFrame);
    if (ret < 0) {
    LOGD("av_frame_make_writable %d",ret);
    return;
    }
    }
    你重采样之后,pCodecCtx的声道排列方式、音频的采样格式、采样频率和输入frame相同了,但是你并没有重新 对dstFrame的相关参数,重新赋值呀

    pcm编码为aac/MP3格式ffmpeg(八)

    前言 pcm音频是未压缩的数据,占空间,在存储或者传输时一般都会选择先进行有损压缩(比如aac,MP3等等)。pcm音频数据在文件存储时一般都按照planner格式存储,例如...

  • 你好,很荣幸能够看到你的谢谢。首先,说一声谢谢,感谢你能分享你的学习心得,对我有了很大的帮助。
    但是在我git clone你的项目时,总是失败,直接下载zip文件,也是失败,无奈,只能通过这种方式向您 寻求代码的repo,谢谢

    ffmpeg-给视频添加字幕(二十四)

    前言 在我们观看电影或者抖音等短视频平台的视频时一般都会出现字幕,有了字幕那视频的表现形式就更加丰富了,所以为一段视频添加字幕也是一个硬需求。本文的目的就是为一段视频添加字幕...

个人介绍
一名iOS和3D游戏开发者码不离手