第11月第8天 ffmpeg ffplay

1.

static int func_fill_frame(SDL_VoutOverlay *overlay, const AVFrame *frame)
{
    assert(overlay);
    SDL_VoutOverlay_Opaque *opaque = overlay->opaque;
    AVFrame swscale_dst_pic = { { 0 } };

    av_frame_unref(opaque->linked_frame);

    int need_swap_uv = 0;
    int use_linked_frame = 0;
    enum AVPixelFormat dst_format = AV_PIX_FMT_NONE;
    switch (overlay->format) {
        case SDL_FCC_YV12:
            need_swap_uv = 1;
            // no break;
        case SDL_FCC_I420:
            if (frame->format == AV_PIX_FMT_YUV420P || frame->format == AV_PIX_FMT_YUVJ420P) {
                // ALOGE("direct draw frame");
                use_linked_frame = 1;
                dst_format = frame->format;
            } else {
                // ALOGE("copy draw frame");
                dst_format = AV_PIX_FMT_YUV420P;
            }
            break;
        case SDL_FCC_I444P10LE:
            if (frame->format == AV_PIX_FMT_YUV444P10LE) {
                // ALOGE("direct draw frame");
                use_linked_frame = 1;
                dst_format = frame->format;
            } else {
                // ALOGE("copy draw frame");
                dst_format = AV_PIX_FMT_YUV444P10LE;
            }
            break;
        case SDL_FCC_RV32:
            dst_format = AV_PIX_FMT_0BGR32;
            break;
        case SDL_FCC_RV24:
            dst_format = AV_PIX_FMT_RGB24;
            break;
        case SDL_FCC_RV16:
            dst_format = AV_PIX_FMT_RGB565;
            break;
        default:
            ALOGE("SDL_VoutFFmpeg_ConvertPicture: unexpected overlay format %s(%d)",
                  (char*)&overlay->format, overlay->format);
            return -1;
    }

    // setup frame
    if (use_linked_frame) {
        // linked frame
        av_frame_ref(opaque->linked_frame, frame);

        overlay_fill(overlay, opaque->linked_frame, opaque->planes);

...

static void overlay_fill(SDL_VoutOverlay *overlay, AVFrame *frame, int planes)
{
    overlay->planes = planes;

    for (int i = 0; i < AV_NUM_DATA_POINTERS; ++i) {
        overlay->pixels[i] = frame->data[i];
        overlay->pitches[i] = frame->linesize[i];
    }
}
...

static GLboolean yuv420p_uploadTexture(IJK_GLES2_Renderer *renderer, SDL_VoutOverlay *overlay)
{
    if (!renderer || !overlay)
        return GL_FALSE;

          int     planes[3]    = { 0, 1, 2 };
    const GLsizei widths[3]    = { overlay->pitches[0], overlay->pitches[1], overlay->pitches[2] };
    const GLsizei heights[3]   = { overlay->h,          overlay->h / 2,      overlay->h / 2 };
    const GLubyte *pixels[3]   = { overlay->pixels[0],  overlay->pixels[1],  overlay->pixels[2] };

    switch (overlay->format) {
        case SDL_FCC_I420:
            break;
        case SDL_FCC_YV12:
            planes[1] = 2;
            planes[2] = 1;
            break;
        default:
            ALOGE("[yuv420p] unexpected format %x\n", overlay->format);
            return GL_FALSE;
    }

    for (int i = 0; i < 3; ++i) {
        int plane = planes[i];

        glBindTexture(GL_TEXTURE_2D, renderer->plane_textures[i]);

        glTexImage2D(GL_TEXTURE_2D,
                     0,
                     GL_LUMINANCE,
                     widths[plane],
                     heights[plane],
                     0,
                     GL_LUMINANCE,
                     GL_UNSIGNED_BYTE,
                     pixels[plane]);
    }

    return GL_TRUE;
}

http://blog.csdn.net/liujiakunit/article/details/46899229

时间: 2024-10-28 21:49:11

第11月第8天 ffmpeg ffplay的相关文章

WINDOWS 10 企业版LTSB 2015年11月补丁更新情况

WINDOWS 10 企业版LTSB 2015年11月补丁与其他WINDOWS 10版本自动更新KB3105213,按微软对LTSB的规划,LTSB不会轻易增加新功能,所以不会收到其他版本推送的1511更新包,安装这个KB3105213不会改变LTSB内部版本号,LTSB目前内部版本号还是10240, 不会更新到10586版本. LTSB的内部版本按以前的官方说明,一年只会升级一次

11月第2周中国五大顶级域名净增2.1万 美国净减1.6万

IDC评述网(idcps.com)11月20日报道:据WebHosting.info公布的最新数据显示,在11月第2周,中国五大顶级域名总量持续上升至9,039,317个,净增21,345个,涨幅增大:而美国五大顶级域名总量则下降至79,732,902个,净减16,089个,降速稳定,发展形势依旧不容乐观. (图1)11月第2周中美五大顶级域名注册量统计(截至2014-11-17) 通过图1,可知在11月第2周,中美五大顶级域名总量的差距依然明显,中国远落后于美国.其中,.COM域名总量,美国高

11月上旬中国域名总量净增2.2万个 涨幅缩小35.5%

IDC评述网(idcps.com)11月20日报道:据WebHosting.info最新数据显示,截止至2014年11月17日,中国域名总量共有9,039,566个.在11月上旬期间(2014-11-04至2014-11-17),涨幅逐渐增大,共净增22,424个,涨幅环比缩小35.5%. (图1)中国域名注册量分布图(10/13/14-11/17/14) 根据图1,可知在11月上旬,中国域名注册量呈上升趋势,所分布的区域无明显变化.接下来,请与IDC评述网一同关注中域名注册总量在11月上旬的具

ffmpeg/ffplay 添加实时的时间水印 (转)

右上角添加时间水印 ffmpeg -i 0.ts -vf drawtext="fontfile=arial.ttf:x=w-tw:fontcolor=white:fontsize=30:text='%{localtime\:%H\\\:%M\\\:%S}'" 123.ts Input #0, mpegts, from '0.ts': Duration: 00:02:04.86, start: 31303.967878, bitrate: 3814 kb/s Program 1 Stre

MySQL_杭州11月销售昨日未上架的SKU_20161212

#C034杭州11月销售昨日未上架的SKU SELECT 城市,a.订单日期,a.客户数,a.订单数,b.产品数,a.金额,c.销售确认额,c.毛利额,c.毛利率 FROM ( SELECT 城市,订单日期,COUNT(用户ID) AS 客户数,SUM(订单数) AS 订单数,SUM(金额) AS 金额 FROM ( SELECT 城市,订单日期,用户ID,COUNT(订单ID) AS 订单数,SUM(金额) AS 金额 FROM ( SELECT 城市,DATE(订单日期) AS 订单日期,用

43_2013年11月22日 线程池 Socket(Thread Lock Process 摇奖 线程池ThreadPool)

1>模拟线程池,生产者消费者问题 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Product { class Program { static void Main(string[] args) { //创建一个池子 MyConncetion[]

高俊峰——运维工程师如何逆袭,11月30号QQ群575837909视频直播

时间:11月30号晚8点-9点30. 地点:QQ群直播 575837909  分享老师:高俊峰 IT系统架构专家,上海好耶集团运维总监,畅销书<循序渐进Linux>.<高性能Linux服务器构建实战>作者,51CTO专家博主. 分享内容:运维工程师如何逆袭 分享大纲: 2016年11月30号晚上8点准时开始 课前活动:到场学员晚7:58开始签到,前10名签到学员奖励100学分. 晚8:00-8:15,高俊峰老师的个人运维成长经验(15分钟) 晚8:15-9:10,运维工程师逆袭需要

.CN域名总量约1500万:11月净增193万 增速加快

IDC评述网(idcps.com)12月10日报道:根据中国互联网络信息中心(CNNIC)最新公布的数据显示,11月份.CN域名总量为14,991,015个,净增1,929,617个,环比上月313,499个的净增长量,涨幅约增大5.2倍.下面,请看IDC评述网整理的数据分析. (图1).CN域名增长趋势图 从图1可知,在2015年6月至11月期间,.CN域名总量持续上升,11月份攀升至14,991,015个,所在区域明显高出其他月份,可见当月增速明显加快.相关数据如下:11月份.CN域名净增1

微软批量授权版WINDOWS 10资料(截至到2015年11月,此处无下载地址)

微软批量授权版WINDOWS 10资料: 1.专业版: Windows 10 专业版(2015 年 7 月发布) WINDOWS 10专业版简体中文,32位/64位 SW_DVD5_Win_Pro_10_32BIT_ChnSimp_MLF_X20-25545.ISO SHA1:0F2F67F5120ED26D28C5C15575275843C0D6CB38 SW_DVD5_Win_Pro_10_64BIT_ChnSimp_MLF_X20-25549.ISO SHA1:A21F4E551ABAC2