Пример #1
0
static GstFlowReturn
gst_gl_mixer_aggregate_frames (GstVideoAggregator * vagg, GstBuffer * outbuf)
{
  gboolean res = FALSE;
  GstGLMixer *mix = GST_GL_MIXER (vagg);
  GstGLMixerClass *mix_class = GST_GL_MIXER_GET_CLASS (vagg);

  if (mix_class->process_buffers)
    res = gst_gl_mixer_process_buffers (mix, outbuf);
  else if (mix_class->process_textures)
    res = gst_gl_mixer_process_textures (mix, outbuf);

  return res ? GST_FLOW_OK : GST_FLOW_ERROR;
}
Пример #2
0
static GstFlowReturn
gst_gl_mixer_aggregate_frames (GstVideoAggregator * vagg, GstBuffer * outbuf)
{
    gboolean res = FALSE;
    GstGLMixer *mix = GST_GL_MIXER (vagg);
    GstGLMixerClass *mix_class = GST_GL_MIXER_GET_CLASS (vagg);
    GstGLSyncMeta *sync_meta;

    if (mix_class->process_buffers)
        res = gst_gl_mixer_process_buffers (mix, outbuf);
    else if (mix_class->process_textures)
        res = gst_gl_mixer_process_textures (mix, outbuf);

    sync_meta = gst_buffer_get_gl_sync_meta (outbuf);
    if (sync_meta)
        gst_gl_sync_meta_set_sync_point (sync_meta, mix->context);

    return res ? GST_FLOW_OK : GST_FLOW_ERROR;
}