mpeg4videoparse: Don't override upstream framerate and PAR
If upstream provided some, there's a good chance they are the ones to use
This commit is contained in:
parent
8968628ca2
commit
0a4c2524fa
@ -533,6 +533,7 @@ static void
|
|||||||
gst_mpeg4vparse_update_src_caps (GstMpeg4VParse * mp4vparse)
|
gst_mpeg4vparse_update_src_caps (GstMpeg4VParse * mp4vparse)
|
||||||
{
|
{
|
||||||
GstCaps *caps = NULL;
|
GstCaps *caps = NULL;
|
||||||
|
GstStructure *s = NULL;
|
||||||
|
|
||||||
GST_LOG_OBJECT (mp4vparse, "Updating caps");
|
GST_LOG_OBJECT (mp4vparse, "Updating caps");
|
||||||
|
|
||||||
@ -547,6 +548,7 @@ gst_mpeg4vparse_update_src_caps (GstMpeg4VParse * mp4vparse)
|
|||||||
GstCaps *tmp = gst_caps_copy (caps);
|
GstCaps *tmp = gst_caps_copy (caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
caps = tmp;
|
caps = tmp;
|
||||||
|
s = gst_caps_get_structure (caps, 0);
|
||||||
} else {
|
} else {
|
||||||
caps = gst_caps_new_simple ("video/mpeg",
|
caps = gst_caps_new_simple ("video/mpeg",
|
||||||
"mpegversion", G_TYPE_INT, 4, NULL);
|
"mpegversion", G_TYPE_INT, 4, NULL);
|
||||||
@ -571,7 +573,8 @@ gst_mpeg4vparse_update_src_caps (GstMpeg4VParse * mp4vparse)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* perhaps we have a framerate */
|
/* perhaps we have a framerate */
|
||||||
if (mp4vparse->vol.fixed_vop_time_increment != 0) {
|
if (mp4vparse->vol.fixed_vop_time_increment != 0 &&
|
||||||
|
(!s || !gst_structure_has_field (s, "framerate"))) {
|
||||||
gint fps_num = mp4vparse->vol.vop_time_increment_resolution;
|
gint fps_num = mp4vparse->vol.vop_time_increment_resolution;
|
||||||
gint fps_den = mp4vparse->vol.fixed_vop_time_increment;
|
gint fps_den = mp4vparse->vol.fixed_vop_time_increment;
|
||||||
GstClockTime latency = gst_util_uint64_scale (GST_SECOND, fps_den, fps_num);
|
GstClockTime latency = gst_util_uint64_scale (GST_SECOND, fps_den, fps_num);
|
||||||
@ -584,7 +587,8 @@ gst_mpeg4vparse_update_src_caps (GstMpeg4VParse * mp4vparse)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* or pixel-aspect-ratio */
|
/* or pixel-aspect-ratio */
|
||||||
if (mp4vparse->vol.par_width > 0 && mp4vparse->vol.par_height > 0) {
|
if (mp4vparse->vol.par_width > 0 && mp4vparse->vol.par_height > 0 &&
|
||||||
|
(!s || !gst_structure_has_field (s, "pixel-aspect-ratio"))) {
|
||||||
gst_caps_set_simple (caps, "pixel-aspect-ratio",
|
gst_caps_set_simple (caps, "pixel-aspect-ratio",
|
||||||
GST_TYPE_FRACTION, mp4vparse->vol.par_width,
|
GST_TYPE_FRACTION, mp4vparse->vol.par_width,
|
||||||
mp4vparse->vol.par_height, NULL);
|
mp4vparse->vol.par_height, NULL);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user