mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-28 20:05:38 +00:00
gst/videoparse/gstvideoparse.c: Handle -1 values for the CONVERT query too.
Original commit message from CVS: * gst/videoparse/gstvideoparse.c: (gst_video_parse_convert), (gst_video_parse_sink_event): Handle -1 values for the CONVERT query too.
This commit is contained in:
parent
4878ce90a2
commit
e29787776c
2 changed files with 21 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2007-12-13 Sebastian Dröge <slomo@circular-chaos.org>
|
||||
|
||||
* gst/videoparse/gstvideoparse.c: (gst_video_parse_convert),
|
||||
(gst_video_parse_sink_event):
|
||||
Handle -1 values for the CONVERT query too.
|
||||
|
||||
2007-12-13 Sebastian Dröge <slomo@circular-chaos.org>
|
||||
|
||||
* gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event):
|
||||
|
|
|
@ -415,6 +415,13 @@ gst_video_parse_convert (GstVideoParse * vp,
|
|||
if (src_format == dest_format) {
|
||||
*dest_value = src_value;
|
||||
ret = TRUE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (src_value == -1) {
|
||||
*dest_value = -1;
|
||||
ret = TRUE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* bytes to frames */
|
||||
|
@ -426,12 +433,14 @@ gst_video_parse_convert (GstVideoParse * vp,
|
|||
*dest_value = 0;
|
||||
}
|
||||
ret = TRUE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* frames to bytes */
|
||||
if (src_format == GST_FORMAT_DEFAULT && dest_format == GST_FORMAT_BYTES) {
|
||||
*dest_value = gst_util_uint64_scale_int (src_value, vp->blocksize, 1);
|
||||
ret = TRUE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* time to frames */
|
||||
|
@ -444,6 +453,7 @@ gst_video_parse_convert (GstVideoParse * vp,
|
|||
*dest_value = 0;
|
||||
}
|
||||
ret = TRUE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* frames to time */
|
||||
|
@ -456,6 +466,7 @@ gst_video_parse_convert (GstVideoParse * vp,
|
|||
*dest_value = 0;
|
||||
}
|
||||
ret = TRUE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* time to bytes */
|
||||
|
@ -468,6 +479,7 @@ gst_video_parse_convert (GstVideoParse * vp,
|
|||
*dest_value = 0;
|
||||
}
|
||||
ret = TRUE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* bytes to time */
|
||||
|
@ -482,6 +494,8 @@ gst_video_parse_convert (GstVideoParse * vp,
|
|||
ret = TRUE;
|
||||
}
|
||||
|
||||
done:
|
||||
|
||||
GST_DEBUG ("ret=%d result %" G_GINT64_FORMAT, ret, *dest_value);
|
||||
|
||||
return ret;
|
||||
|
@ -512,9 +526,7 @@ gst_video_parse_sink_event (GstPad * pad, GstEvent * event)
|
|||
ret =
|
||||
gst_video_parse_convert (vp, format, start, GST_FORMAT_TIME, &start);
|
||||
ret &= gst_video_parse_convert (vp, format, time, GST_FORMAT_TIME, &time);
|
||||
if (stop != GST_CLOCK_TIME_NONE)
|
||||
ret &=
|
||||
gst_video_parse_convert (vp, format, stop, GST_FORMAT_TIME, &stop);
|
||||
ret &= gst_video_parse_convert (vp, format, stop, GST_FORMAT_TIME, &stop);
|
||||
if (!ret) {
|
||||
GST_ERROR_OBJECT (vp,
|
||||
"Failed converting to GST_FORMAT_TIME format (%d)", format);
|
||||
|
|
Loading…
Reference in a new issue