static void
gss_program_jpeg_resource (GssTransaction * t)
{
  GssProgram *program = (GssProgram *) t->resource->priv;
  GstBuffer *buffer = NULL;

  if (!program->enable_streaming || program->state != GSS_PROGRAM_STATE_RUNNING) {
    soup_message_set_status (t->msg, SOUP_STATUS_NO_CONTENT);
    return;
  }

  if (program->jpegsink) {
    g_object_get (program->jpegsink, "last-buffer", &buffer, NULL);
  }

  if (buffer) {
    soup_message_set_status (t->msg, SOUP_STATUS_OK);

    soup_message_set_response (t->msg, "image/jpeg", SOUP_MEMORY_COPY,
        (void *) GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer));

    gst_buffer_unref (buffer);
  } else {
    gss_html_error_404 (t->server, t->msg);
  }

}
static void
gss_program_jpeg_resource (GssTransaction * t)
{
  GssProgram *program = (GssProgram *) t->resource->priv;
#if GST_CHECK_VERSION(1,0,0)
  GstSample *sample = NULL;
#endif
  GstBuffer *buffer = NULL;

  if (!program->enable_streaming || program->state != GSS_PROGRAM_STATE_RUNNING) {
    soup_message_set_status (t->msg, SOUP_STATUS_NO_CONTENT);
    return;
  }
#if GST_CHECK_VERSION(1,0,0)
  if (program->jpegsink) {
    g_object_get (program->jpegsink, "last-sample", &sample, NULL);
  }
  if (sample) {
    GstMapInfo mapinfo;

    buffer = gst_sample_get_buffer (sample);
    if (buffer) {
      soup_message_set_status (t->msg, SOUP_STATUS_OK);

      gst_buffer_map (buffer, &mapinfo, GST_MAP_READ);
      soup_message_set_response (t->msg, "image/jpeg", SOUP_MEMORY_COPY,
          (char *) mapinfo.data, mapinfo.size);

      gst_buffer_unmap (buffer, &mapinfo);
    }
    gst_sample_unref (sample);
    return;
  }
#else
  if (program->jpegsink) {
    g_object_get (program->jpegsink, "last-buffer", &buffer, NULL);
  }

  if (buffer) {
    soup_message_set_status (t->msg, SOUP_STATUS_OK);

    soup_message_set_response (t->msg, "image/jpeg", SOUP_MEMORY_COPY,
        (char *) GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer));

    gst_buffer_unref (buffer);
    return;
  }
#endif

  gss_html_error_404 (t->server, t->msg);
}