先看下函数
int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq,
enum AVRounding rnd) av_const;
看到第四个参数的确是枚举类型AVRounding。
但是为什么我的函数调用仍然报错呢?
pkt.pts = av_rescale_q_rnd(pkt.pts - pts_start_from[pkt.stream_index], in_stream->time_base,
out_stream->time_base, AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX);
pkt.dts = av_rescale_q_rnd(pkt.dts - dts_start_from[pkt.stream_index], in_stream->time_base,
out_stream->time_base, AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX);
原来在使用VS2017的时候,编译器默认先对枚举进行了计算,计算的结果为int 型,此处需要强制转换成枚举类型即可!
pkt.pts = av_rescale_q_rnd(pkt.pts - pts_start_from[pkt.stream_index], in_stream->time_base,