mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavc/videotoolboxenc: Fix DTS
Some devices output an invalid DTS when B-frames aren't used. Using PTS for the DTS in this case. Signed-off-by: Rick Kern <kernrj@gmail.com>
This commit is contained in:
parent
abe05892be
commit
2fbf39382d
@ -1034,6 +1034,15 @@ static int vtenc_cm_to_avpacket(
|
||||
pts = CMSampleBufferGetPresentationTimeStamp(sample_buffer);
|
||||
dts = CMSampleBufferGetDecodeTimeStamp (sample_buffer);
|
||||
|
||||
if (CMTIME_IS_INVALID(dts)) {
|
||||
if (!vtctx->has_b_frames) {
|
||||
dts = pts;
|
||||
} else {
|
||||
av_log(avctx, AV_LOG_ERROR, "DTS is invalid.\n");
|
||||
return AVERROR_EXTERNAL;
|
||||
}
|
||||
}
|
||||
|
||||
dts_delta = vtctx->dts_delta >= 0 ? vtctx->dts_delta : 0;
|
||||
time_base_num = avctx->time_base.num;
|
||||
pkt->pts = pts.value / time_base_num;
|
||||
|
Loading…
Reference in New Issue
Block a user