gentlsrc: check for valid payload type earlier
This commit is contained in:
parent
8ac5739f97
commit
f38c3a4d1f
@ -1323,6 +1323,11 @@ gst_gentlsrc_get_buffer (GstGenTlSrc * src)
|
|||||||
GTL_DSGetBufferInfo (src->hDS, new_buffer_data.BufferHandle,
|
GTL_DSGetBufferInfo (src->hDS, new_buffer_data.BufferHandle,
|
||||||
BUFFER_INFO_PAYLOADTYPE, &datatype, &payload_type, &datasize);
|
BUFFER_INFO_PAYLOADTYPE, &datatype, &payload_type, &datasize);
|
||||||
HANDLE_GTL_ERROR ("Failed to get payload type");
|
HANDLE_GTL_ERROR ("Failed to get payload type");
|
||||||
|
if (payload_type != PAYLOAD_TYPE_IMAGE) {
|
||||||
|
GST_ELEMENT_ERROR (src, STREAM, TOO_LAZY,
|
||||||
|
("Unsupported payload type: %d", payload_type), (NULL));
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
datasize = sizeof (frame_id);
|
datasize = sizeof (frame_id);
|
||||||
ret =
|
ret =
|
||||||
@ -1348,11 +1353,6 @@ gst_gentlsrc_get_buffer (GstGenTlSrc * src)
|
|||||||
BUFFER_INFO_BASE, &datatype, &data_ptr, &datasize);
|
BUFFER_INFO_BASE, &datatype, &data_ptr, &datasize);
|
||||||
HANDLE_GTL_ERROR ("Failed to get buffer pointer");
|
HANDLE_GTL_ERROR ("Failed to get buffer pointer");
|
||||||
|
|
||||||
if (payload_type != PAYLOAD_TYPE_IMAGE) {
|
|
||||||
GST_ELEMENT_ERROR (src, STREAM, TOO_LAZY,
|
|
||||||
("Unsupported payload type: %d", payload_type), (NULL));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
// TODO: what if strides aren't same?
|
// TODO: what if strides aren't same?
|
||||||
|
|
||||||
buf = gst_buffer_new_allocate (NULL, buffer_size, NULL);
|
buf = gst_buffer_new_allocate (NULL, buffer_size, NULL);
|
||||||
@ -1361,7 +1361,7 @@ gst_gentlsrc_get_buffer (GstGenTlSrc * src)
|
|||||||
("Failed to allocate buffer"), (NULL));
|
("Failed to allocate buffer"), (NULL));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
// TODO: try to eliminate this memcpy by using gst_buffer_new_wrapped_full
|
||||||
gst_buffer_map (buf, &minfo, GST_MAP_WRITE);
|
gst_buffer_map (buf, &minfo, GST_MAP_WRITE);
|
||||||
orc_memcpy (minfo.data, (void *) data_ptr, minfo.size);
|
orc_memcpy (minfo.data, (void *) data_ptr, minfo.size);
|
||||||
gst_buffer_unmap (buf, &minfo);
|
gst_buffer_unmap (buf, &minfo);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user