(1) av_rescale_q用于计算Packet的PTS。av_rescale_q的返回值是一个很大的整数,且每次计算的结果间隔很大。
av_rescale_q(a,b,c)是用来把时间戳从一个时基调整到另外一个时基时候用的函数。它基本的动作是计算a*b/c,但是这个函数还是必需的,因为直 接计算会有溢出的情况发生。AV_TIME_BASE_Q是AV_TIME_BASE作为分母后的版本。它们是很不相同的:AV_TIME_BASE * time_in_seconds = avcodec_timestamp而AV_TIME_BASE_Q * avcodec_timestamp = time_in_seconds(注意AV_TIME_BASE_Q实际上是一个AVRational对象,所 以 你必需使用avcodec中特定的q函数来处理它)。
(2) avcodec_get_frame_defaults2这个函数是在新版本中出现的,与avcodec_get_frame_defaults类似,以下是其老版本函数的用法
if (av_set_parameters(m_pAVFormatContext, NULL) < 0) { ReleaseEncoder(); return E_FAIL; } |
avcodec_get_frame_defaults(&m_frmRGBPicture); avcodec_get_frame_defaults(&m_frmYUVpicture); |
avpicture_alloc((AVPicture*)&m_frmYUVpicture, |