ffmepg 同步

if (packet->dts == AV_NOPTS_VALUE && mFrame->opaque

            && *(uint64_t*) mFrame->opaque != AV_NOPTS_VALUE) {      //  表示从这个包没有获得dts,  但我们获得了第一包的pts,     那我们就使用这个PTS 作为帧的pts

            

        pts = *(uint64_t *) mFrame->opaque;

        

    } else if (packet->dts != AV_NOPTS_VALUE) {           // 被avcodec_decode_video()  处理过的包的DTS 和它返回的帧的PTS总是相同的,因而可以用DTS作为PTS

        pts = packet->dts;

    } else {

        pts = 0;        //如果我们得不到PTS就把它设置为0。
    }

    }

你可能感兴趣的:(同步)