Edward Hervey 2023-05-09 10:08:42 +02:00 committed by GStreamer Marge Bot
parent 386a8dbae5
commit 7a4916b251

View file

@ -400,12 +400,6 @@ struct _GstVideoDecoderPrivate
/* collected output - of buffer objects, not frames */ /* collected output - of buffer objects, not frames */
GList *output_queued; GList *output_queued;
/* base_picture_number is the picture number of the reference picture */
guint64 base_picture_number;
/* combine with base_picture_number, framerate and calcs to yield (presentation) ts */
GstClockTime base_timestamp;
/* Properties */ /* Properties */
GstClockTime min_force_key_unit_interval; GstClockTime min_force_key_unit_interval;
gboolean discard_corrupted_frames; gboolean discard_corrupted_frames;
@ -1570,9 +1564,6 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder,
segment.flags |= priv->decode_flags & GST_SEGMENT_INSTANT_FLAGS; segment.flags |= priv->decode_flags & GST_SEGMENT_INSTANT_FLAGS;
} }
priv->base_timestamp = GST_CLOCK_TIME_NONE;
priv->base_picture_number = 0;
decoder->input_segment = segment; decoder->input_segment = segment;
decoder->priv->in_out_segment_sync = FALSE; decoder->priv->in_out_segment_sync = FALSE;
@ -2378,7 +2369,6 @@ gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full,
priv->posted_latency_msg = FALSE; priv->posted_latency_msg = FALSE;
priv->decode_frame_number = 0; priv->decode_frame_number = 0;
priv->base_picture_number = 0;
if (priv->pool) { if (priv->pool) {
GST_DEBUG_OBJECT (decoder, "deactivate pool %" GST_PTR_FORMAT, GST_DEBUG_OBJECT (decoder, "deactivate pool %" GST_PTR_FORMAT,
@ -2396,7 +2386,6 @@ gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full,
priv->discont = TRUE; priv->discont = TRUE;
priv->base_timestamp = GST_CLOCK_TIME_NONE;
priv->last_timestamp_out = GST_CLOCK_TIME_NONE; priv->last_timestamp_out = GST_CLOCK_TIME_NONE;
priv->pts_delta = GST_CLOCK_TIME_NONE; priv->pts_delta = GST_CLOCK_TIME_NONE;
@ -3029,18 +3018,6 @@ gst_video_decoder_prepare_finish_frame (GstVideoDecoder *
if (G_UNLIKELY ((frame->output_buffer == NULL) && !dropping)) if (G_UNLIKELY ((frame->output_buffer == NULL) && !dropping))
goto no_output_buffer; goto no_output_buffer;
if (GST_CLOCK_TIME_IS_VALID (frame->pts)) {
if (frame->pts != priv->base_timestamp) {
GST_DEBUG_OBJECT (decoder,
"sync timestamp %" GST_TIME_FORMAT " diff %" GST_STIME_FORMAT,
GST_TIME_ARGS (frame->pts),
GST_STIME_ARGS (GST_CLOCK_DIFF (frame->pts,
decoder->output_segment.start)));
priv->base_timestamp = frame->pts;
priv->base_picture_number = frame->decode_frame_number;
}
}
if (frame->duration == GST_CLOCK_TIME_NONE) { if (frame->duration == GST_CLOCK_TIME_NONE) {
frame->duration = gst_video_decoder_get_frame_duration (decoder, frame); frame->duration = gst_video_decoder_get_frame_duration (decoder, frame);
GST_LOG_OBJECT (decoder, GST_LOG_OBJECT (decoder,