tsdemux: use JXS_video_descriptor "frat" to set caps "framerate"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7836>
This commit is contained in:
Adrien De Coninck 2024-11-05 18:04:44 +01:00 committed by GStreamer Marge Bot
parent d2d2a12aac
commit b3e2ad498a

View file

@ -1862,10 +1862,15 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
gst_caps_from_string
("image/x-jxsc, alignment=(string)frame, interlace-mode=(string)progressive");
/* interlace-mode, sampling, depth */
/* interlace-mode, sampling, depth, framerate */
gint depth = ((jpegxs.schar >> 4) & 0xf) + 1;
gint framerate_num = (jpegxs.frat & 0x0000FFFFU);
gint framerate_den = ((jpegxs.frat >> 24) & 0x0000003FU);
gst_caps_set_simple (caps, "width", G_TYPE_INT, jpegxs.horizontal_size,
"height", G_TYPE_INT, jpegxs.vertical_size, "depth", G_TYPE_INT,
((jpegxs.schar >> 4) & 0xf) + 1, NULL);
"height", G_TYPE_INT, jpegxs.vertical_size,
"depth", G_TYPE_INT, depth,
"framerate", GST_TYPE_FRACTION, framerate_num, framerate_den, NULL);
switch (jpegxs.schar & 0xf) {
case 0:
gst_caps_set_simple (caps, "sampling", G_TYPE_STRING, "YCbCr-4:2:2",