mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
vdpaumpegdec: fixup timestamping of outgoing buffers
This commit is contained in:
parent
42d90ddfa3
commit
616038423f
2 changed files with 8 additions and 5 deletions
|
@ -65,13 +65,16 @@ gst_vdp_decoder_push_video_buffer (GstVdpDecoder * dec,
|
||||||
GstVdpVideoBuffer * buffer)
|
GstVdpVideoBuffer * buffer)
|
||||||
{
|
{
|
||||||
if (GST_BUFFER_TIMESTAMP (buffer) == GST_CLOCK_TIME_NONE) {
|
if (GST_BUFFER_TIMESTAMP (buffer) == GST_CLOCK_TIME_NONE) {
|
||||||
GST_BUFFER_TIMESTAMP (buffer) =
|
GST_BUFFER_TIMESTAMP (buffer) = dec->time +
|
||||||
gst_util_uint64_scale_int (GST_SECOND * dec->frame_nr,
|
gst_util_uint64_scale_int (GST_SECOND,
|
||||||
dec->framerate_denominator, dec->framerate_numerator);
|
dec->framerate_denominator, dec->framerate_numerator);
|
||||||
dec->frame_nr++;
|
|
||||||
}
|
}
|
||||||
gst_buffer_set_caps (GST_BUFFER (buffer), GST_PAD_CAPS (dec->src));
|
gst_buffer_set_caps (GST_BUFFER (buffer), GST_PAD_CAPS (dec->src));
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (dec, "Pushin buffer with timestamp: %" GST_TIME_FORMAT,
|
||||||
|
GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
|
||||||
|
dec->time = GST_BUFFER_TIMESTAMP (buffer);
|
||||||
|
|
||||||
return gst_pad_push (dec->src, GST_BUFFER (buffer));
|
return gst_pad_push (dec->src, GST_BUFFER (buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +176,7 @@ gst_vdp_decoder_init (GstVdpDecoder * dec, GstVdpDecoderClass * klass)
|
||||||
dec->framerate_numerator = 0;
|
dec->framerate_numerator = 0;
|
||||||
dec->framerate_denominator = 0;
|
dec->framerate_denominator = 0;
|
||||||
|
|
||||||
dec->frame_nr = 0;
|
dec->time = 0;
|
||||||
|
|
||||||
dec->src = gst_pad_new_from_static_template (&src_template, "src");
|
dec->src = gst_pad_new_from_static_template (&src_template, "src");
|
||||||
gst_element_add_pad (GST_ELEMENT (dec), dec->src);
|
gst_element_add_pad (GST_ELEMENT (dec), dec->src);
|
||||||
|
|
|
@ -52,7 +52,7 @@ struct _GstVdpDecoder {
|
||||||
gint framerate_numerator, framerate_denominator;
|
gint framerate_numerator, framerate_denominator;
|
||||||
guint32 format;
|
guint32 format;
|
||||||
|
|
||||||
gint frame_nr;
|
GstClockTime time;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstVdpDecoderClass {
|
struct _GstVdpDecoderClass {
|
||||||
|
|
Loading…
Reference in a new issue