summaryrefslogtreecommitdiff
path: root/sys/winks
diff options
context:
space:
mode:
authorAndoni Morales Alastruey <ylatuya@gmail.com>2015-04-29 21:37:56 +0200
committerAndoni Morales Alastruey <ylatuya@gmail.com>2015-04-29 21:41:48 +0200
commit20e5a4a498a516821e180d81e45016c7b2ad8f57 (patch)
treee2b0c09da8484bf89c9021dc1c9cc56d3e0d318c /sys/winks
parent8407622c934087f8dead009b5d56e52d18f1845a (diff)
downloadgstreamer-plugins-bad-20e5a4a498a516821e180d81e45016c7b2ad8f57.tar.gz
ksvideosrc: fix header size for muxed streams
Diffstat (limited to 'sys/winks')
-rw-r--r--sys/winks/gstksvideodevice.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/winks/gstksvideodevice.c b/sys/winks/gstksvideodevice.c
index 560173012..0e2aa089d 100644
--- a/sys/winks/gstksvideodevice.c
+++ b/sys/winks/gstksvideodevice.c
@@ -83,6 +83,7 @@ struct _GstKsVideoDevicePrivate
guint fps_n;
guint fps_d;
guint8 *rgb_swap_buf;
+ gboolean is_muxed;
HANDLE pin_handle;
@@ -752,6 +753,11 @@ gst_ks_video_device_set_caps (GstKsVideoDevice * self, GstCaps * caps)
if (!gst_structure_get_int (s, "width", &width) ||
!gst_structure_get_int (s, "height", &height) ||
!gst_structure_get_fraction (s, "framerate", &fps_n, &fps_d)) {
+ gst_structure_get_boolean (s, "systemstream", &priv->is_muxed);
+ if (!priv->is_muxed) {
+ GST_ERROR ("Failed to get width/height/fps");
+ goto error;
+ }
} else {
if (!ks_video_fixate_media_type (media_type->range,
media_type->format, width, height, fps_n, fps_d))
@@ -965,7 +971,10 @@ gst_ks_video_device_request_frame (GstKsVideoDevice * self, ReadRequest * req,
if (!gst_buffer_map (req->buf, &info, GST_MAP_WRITE))
goto map_failed;
- params->header.Size = sizeof (KSSTREAM_HEADER) + sizeof (KS_FRAME_INFO);
+ params->header.Size = sizeof (KSSTREAM_HEADER);
+ if (!priv->is_muxed) {
+ params->header.Size += sizeof (KS_FRAME_INFO);
+ }
params->header.PresentationTime.Numerator = 1;
params->header.PresentationTime.Denominator = 1;
params->header.FrameExtent = gst_ks_video_device_get_frame_size (self);