Exemplo n.º 1
0
typename async_result<T>::iterator &async_result<T>::iterator::operator ++()
{
	ensure_data();
	if (m_state == data_at_end) {
		throw_error(-ENOENT, "async_result::iterator::operator ++(): end iterator");
	}
	m_state = data_waiting;
	ensure_data();
	return *this;
}
Exemplo n.º 2
0
typename async_result<T>::iterator async_result<T>::iterator::operator ++(int)
{
	ensure_data();
	iterator tmp = *this;
	++(*this);
	return tmp;
}
GstMemory *
gst_msdk_system_memory_new (GstAllocator * base_allocator)
{
  GstMsdkSystemAllocator *allocator;
  GstVideoInfo *vip;
  GstMsdkSystemMemory *mem;

  g_return_val_if_fail (base_allocator, NULL);
  g_return_val_if_fail (GST_IS_MSDK_SYSTEM_ALLOCATOR (base_allocator), NULL);

  allocator = GST_MSDK_SYSTEM_ALLOCATOR_CAST (base_allocator);

  mem = g_slice_new0 (GstMsdkSystemMemory);
  if (!mem)
    return NULL;

  mem->surface = gst_msdk_system_allocator_create_surface (base_allocator);

  vip = &allocator->image_info;
  gst_memory_init (&mem->parent_instance, GST_MEMORY_FLAG_NO_SHARE,
      base_allocator, NULL, GST_VIDEO_INFO_SIZE (vip), 0, 0,
      GST_VIDEO_INFO_SIZE (vip));

  if (!ensure_data (mem))
    return NULL;

  return GST_MEMORY_CAST (mem);
}
Exemplo n.º 4
0
T *async_result<T>::iterator::operator ->() const
{
	ensure_data();
	if (m_state == data_at_end) {
		throw_error(-ENOENT, "async_result::iterator::operator ->(): end iterator");
	}
	return &m_result;
}
static gpointer
_vdp_video_mem_map (GstVdpVideoMemory * vmem, gsize maxsize, GstMapFlags flags)
{
  GST_DEBUG ("surface:%d, maxsize:%" G_GSIZE_FORMAT ", flags:%d",
      vmem->surface, maxsize, flags);

  if (!ensure_data (vmem))
    return NULL;

  return vmem->cache;
}
Exemplo n.º 6
0
	explicit ReaderFile(gvl::source source)
	: data(0), pos(0)
	{
		len = 0;
		auto cur = source;
		while (cur && cur->ensure_data() == gvl::source_result::ok)
		{
			len += cur->data->size();
			cur = cur->next;
		}

		data = (uint8_t*)malloc(len);
		uint8_t* p = data;

		cur = source;
		while (cur && cur->data)
		{
			std::memcpy(p, cur->data->begin(), cur->data->size());
			p += cur->data->size();
			cur = cur->next;
		}
	}
gboolean
gst_vdp_video_memory_map (GstVideoMeta * meta, guint plane, GstMapInfo * info,
    gpointer * data, gint * stride, GstMapFlags flags)
{
  GstBuffer *buffer = meta->buffer;
  GstVdpVideoMemory *vmem =
      (GstVdpVideoMemory *) gst_buffer_get_memory (buffer, 0);

  /* Only handle GstVdpVideoMemory */
  g_return_val_if_fail (((GstMemory *) vmem)->allocator == _vdp_video_allocator,
      FALSE);

  GST_DEBUG ("plane:%d", plane);

  /* download if not already done */
  if (!ensure_data (vmem))
    return FALSE;

  *data = vmem->cached_data[plane];
  *stride = vmem->destination_pitches[plane];

  return TRUE;
}
Exemplo n.º 8
0
bool async_result<T>::iterator::at_end() const
{
	ensure_data();
	return m_state == data_at_end;
}