资源简介

ffmpeg项目源代码编译,生成exe文件,配上dll库即可执行。 环境:Win7+VS2013

资源截图

代码片段和文件信息

/*
 * Copyright (c) 2012 Nicolas George
 *
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License or (at your option) any later version.
 *
 * FFmpeg is distributed in the hope that it will be useful
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with FFmpeg; if not write to the Free Software
 * Foundation Inc. 51 Franklin Street Fifth Floor Boston MA 02110-1301 USA
 */

#include 
#include 
#include 
#include 
#include “avassert.h“
#include “avstring.h“
#include “bprint.h“
#include “common.h“
#include “compat/va_copy.h“
#include “error.h“
#include “mem.h“

#define av_bprint_room(buf) ((buf)->size - FFMIN((buf)->len (buf)->size))
#define av_bprint_is_allocated(buf) ((buf)->str != (buf)->reserved_internal_buffer)

static int av_bprint_alloc(AVBPrint *buf unsigned room)
{
    char *old_str *new_str;
    unsigned min_size new_size;

    if (buf->size == buf->size_max)
        return AVERROR(EIO);
    if (!av_bprint_is_complete(buf))
        return AVERROR_INVALIDDATA; /* it is already truncated anyway */
    min_size = buf->len + 1 + FFMIN(UINT_MAX - buf->len - 1 room);
    new_size = buf->size > buf->size_max / 2 ? buf->size_max : buf->size * 2;
    if (new_size < min_size)
        new_size = FFMIN(buf->size_max min_size);
    old_str = av_bprint_is_allocated(buf) ? buf->str : NULL;
    new_str = av_realloc(old_str new_size);
    if (!new_str)
        return AVERROR(ENOMEM);
    if (!old_str)
        memcpy(new_str buf->str buf->len + 1);
    buf->str  = new_str;
    buf->size = new_size;
    return 0;
}

static void av_bprint_grow(AVBPrint *buf unsigned extra_len)
{
    /* arbitrary margin to avoid small overflows */
    extra_len = FFMIN(extra_len UINT_MAX - 5 - buf->len);
    buf->len += extra_len;
    if (buf->size)
        buf->str[FFMIN(buf->len buf->size - 1)] = 0;
}

void av_bprint_init(AVBPrint *buf unsigned size_init unsigned size_max)
{
    unsigned size_auto = (char *)buf + sizeof(*buf) -
                         buf->reserved_internal_buffer;

    if (size_max == 1)
        size_max = size_auto;
    buf->str      = buf->reserved_internal_buffer;
    buf->len      = 0;
    buf->size     = FFMIN(size_auto size_max);
    buf->size_max = size_max;
    *buf->str = 0;
    if (size_init > buf->size)
        av_bprint_alloc(buf size_init - 1);
}

void av_bprint_init_for_buffer(AVBPrint *buf char *buffer unsigned size)
{
    buf->str      = buffer;
    buf->len      = 0;
    buf->size     = size;
    buf->size_max = size;
    *buf->str = 0;
}

void av_bprintf(AVBPrint *

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    2949120  2015-04-22 09:47  ipch\ffmpeg-2.4.2-e15314b7\ffmpeg-2.4.ipch

    ..A..H.        50  2015-04-22 09:08  ffmpeg-2.4.2.opensdf

     文件   38535168  2015-04-22 11:39  ffmpeg-2.4.2.sdf

     文件        982  2015-04-21 09:38  ffmpeg-2.4.2.sln

    ..A..H.     44544  2015-04-22 11:37  ffmpeg-2.4.2.v12.suo

     文件      11317  2014-10-03 09:49  ffmpeg-2.4.2\bprint.c

     文件       8703  2015-04-21 13:41  ffmpeg-2.4.2\bprint.h

     文件      67200  2015-04-21 15:14  ffmpeg-2.4.2\cmdutils.cpp

     文件      18965  2015-04-21 18:14  ffmpeg-2.4.2\cmdutils.h

     文件       2749  2015-04-22 09:17  ffmpeg-2.4.2\cmdutils_common_opts.h

     文件      10236  2014-10-03 09:49  ffmpeg-2.4.2\cmdutils_opencl.c

     文件      55453  2015-03-19 17:56  ffmpeg-2.4.2\config.h

     文件     202234  2015-04-22 09:15  ffmpeg-2.4.2\Debug\cmdutils.obj

     文件       5195  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.log

     文件       2014  2015-04-21 17:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.obj

     文件    2359296  2015-04-21 17:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.pch

     文件       7806  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.tlog\cl.command.1.tlog

     文件     105322  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.tlog\CL.read.1.tlog

     文件       6610  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.tlog\CL.write.1.tlog

     文件        165  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.tlog\ffmpeg-2.4.2.lastbuildstate

     文件       2436  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.tlog\link.command.1.tlog

     文件       5034  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.tlog\link.read.1.tlog

     文件       1260  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg-2.4.2.tlog\link.write.1.tlog

     文件     256077  2015-04-22 11:37  ffmpeg-2.4.2\Debug\ffmpeg.obj

     文件      74941  2015-04-22 10:56  ffmpeg-2.4.2\Debug\ffmpeg_dxva2.obj

     文件      77175  2015-04-22 10:53  ffmpeg-2.4.2\Debug\ffmpeg_filter.obj

     文件     279463  2015-04-22 09:18  ffmpeg-2.4.2\Debug\ffmpeg_opt.obj

     文件      11599  2015-04-21 17:37  ffmpeg-2.4.2\Debug\stdafx.obj

     文件    1010688  2015-04-22 11:37  ffmpeg-2.4.2\Debug\vc120.idb

     文件     495616  2015-04-22 11:37  ffmpeg-2.4.2\Debug\vc120.pdb

............此处省略419个文件信息

评论

共有 条评论