android编译c++版ffmpeg记录

1.找不到 int64_min, int64_max


//copy from stdin.h
#ifndef  INT64_MIN
#define  INT64_MIN        (__INT64_C(-9223372036854775807)-1)
#endif
#ifndef INT64_MAX     
#define INT64_MAX        (__INT64_C(9223372036854775807))
#endif

定义在stdin.h中,而且代码的逻辑确实走到了这里,但是不知道什么原因,还是提示找不到.解决办法,直接把这个值拷贝到android ffmpeg 代码里面.

2. av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum)

c创建函数时申请内存不被允许

//#define av_err2str(errnum)                                            \
//    av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum)
static inline char *av_err2str(int errnum)
{
    static char err_buff[AV_ERROR_MAX_STRING_SIZE]={0};
    av_make_error_string(err_buff, AV_ERROR_MAX_STRING_SIZE, errnum);
    return err_buff;
}

3.宏申请内存作为全局变量

//#define AV_TIME_BASE_Q          (AVRational){1, AV_TIME_BASE}
static struct AVRational AV_TIME_BASE_Q = {1, AV_TIME_BASE};

4.宏定义类型转换错误

#define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)\
{\
    int i, ret;\
    for (i = 0; i < o->nb_ ## name; i++) {\
        char *spec = o->name[i].specifier;\
        if ((ret = check_stream_specifier(fmtctx, st, spec)) > 0)\
            outvar =(__typeof(outvar))  o->name[i].u.type;\
        else if (ret < 0)\
            exit_program(1);\
    }\
}

#define MATCH_PER_TYPE_OPT(name, type, outvar, fmtctx, mediatype)\
{\
    int i;\
    for (i = 0; i < o->nb_ ## name; i++) {\
        char *spec = o->name[i].specifier;\
        if (!strcmp(spec, mediatype))\
            outvar =(__typeof(outvar)) o->name[i].u.type;   \
    }\
}

5.uint8_t*, char *, const char*类型转换

uint8 *uint8_pointer = ?;

// C style cast
const char *char_pointer = (char*)uint8_pointer;

// newer C++ style cast syntax
const char *char_pointer2 = reinterpret_cast<char*>(uint8_pointer); 

You can also do it the other way round:

char *char_pointer = ?;
uint8 *uint8_pointer = reinterpret_cast<uint8*>(char_pointer);

6 :  PRIx64报错

error: expected ')' before 'PRIx64'

 "0x%"PRIx64, 改成: 0x%llx

猜你喜欢

转载自blog.csdn.net/u010029439/article/details/81938389