mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
h265parse: Derive src fps from vui_time_scale & vui_num_units_in_tick
This commit is contained in:
parent
51bc67d4ef
commit
158d69fd45
1 changed files with 20 additions and 8 deletions
|
@ -1969,15 +1969,27 @@ gst_h265_parse_update_src_caps (GstH265Parse * h265parse, GstCaps * caps)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 0/1 is set as the default in the codec parser */
|
/* 0/1 is set as the default in the codec parser */
|
||||||
if ((vui->timing_info_present_flag ||
|
if (vui->timing_info_present_flag) {
|
||||||
(vps && vps->timing_info_present_flag)) &&
|
gint fps_num = 0, fps_den = 1;
|
||||||
!(sps->fps_num == 0 && sps->fps_den == 1)) {
|
|
||||||
if (G_UNLIKELY (h265parse->fps_num != sps->fps_num
|
if (!(sps->fps_num == 0 && sps->fps_den == 1)) {
|
||||||
|| h265parse->fps_den != sps->fps_den)) {
|
fps_num = sps->fps_num;
|
||||||
|
fps_den = sps->fps_den;
|
||||||
|
} else if (!(sps->vui_params.time_scale == 0 &&
|
||||||
|
sps->vui_params.num_units_in_tick == 1)) {
|
||||||
|
fps_num = sps->vui_params.time_scale;
|
||||||
|
fps_den = sps->vui_params.num_units_in_tick;
|
||||||
|
|
||||||
|
if (sps->profile_tier_level.interlaced_source_flag)
|
||||||
|
fps_num /= 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (G_UNLIKELY (h265parse->fps_num != fps_num
|
||||||
|
|| h265parse->fps_den != fps_den)) {
|
||||||
GST_INFO_OBJECT (h265parse, "framerate changed %d/%d",
|
GST_INFO_OBJECT (h265parse, "framerate changed %d/%d",
|
||||||
sps->fps_num, sps->fps_den);
|
fps_num, fps_den);
|
||||||
h265parse->fps_num = sps->fps_num;
|
h265parse->fps_num = fps_num;
|
||||||
h265parse->fps_den = sps->fps_den;
|
h265parse->fps_den = fps_den;
|
||||||
modified = TRUE;
|
modified = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue