You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	lavc/encode: generalize a check for setting dts=pts
DTS may be different from PTS only if both of these are true: - the codec supports reordering - the encoder has delay
This commit is contained in:
		| @@ -211,7 +211,7 @@ int ff_encode_encode_cb(AVCodecContext *avctx, AVPacket *avpkt, | ||||
|  | ||||
|         if (avctx->codec->type == AVMEDIA_TYPE_VIDEO && | ||||
|             !(avctx->codec->capabilities & AV_CODEC_CAP_DELAY)) | ||||
|             avpkt->pts = avpkt->dts = frame->pts; | ||||
|             avpkt->pts = frame->pts; | ||||
|         if (!(avctx->codec->capabilities & AV_CODEC_CAP_DELAY)) { | ||||
|             if (avctx->codec->type == AVMEDIA_TYPE_AUDIO) { | ||||
|                 if (avpkt->pts == AV_NOPTS_VALUE) | ||||
| @@ -221,9 +221,12 @@ int ff_encode_encode_cb(AVCodecContext *avctx, AVPacket *avpkt, | ||||
|                                                               frame->nb_samples); | ||||
|             } | ||||
|         } | ||||
|         if (avctx->codec->type == AVMEDIA_TYPE_AUDIO) { | ||||
|  | ||||
|         // dts equals pts unless there is reordering | ||||
|         // there can be no reordering if there is no encoder delay | ||||
|         if (!(avctx->codec_descriptor->props & AV_CODEC_PROP_REORDER) || | ||||
|             !(avctx->codec->capabilities & AV_CODEC_CAP_DELAY)) | ||||
|             avpkt->dts = avpkt->pts; | ||||
|         } | ||||
|     } else { | ||||
| unref: | ||||
|         av_packet_unref(avpkt); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user