Пример #1
0
event_t *
fa_gme_playfile(media_pipe_t *mp, fa_handle_t *fh,
		char *errbuf, size_t errlen, int hold, const char *url)
{
  buf_t *b;
  event_t *e;

  if((b = fa_load_and_close(fh)) == NULL) {
    snprintf(errbuf, errlen, "Unable to read data from file");
    return NULL;
  }

  e = fa_gme_playfile_internal(mp, b->b_ptr, b->b_size, errbuf, errlen,
			       hold, 0, url);
  buf_release(b);
  return e;
}
Пример #2
0
event_t *
fa_gme_playfile(media_pipe_t *mp, fa_handle_t *fh,
		char *errbuf, size_t errlen, int hold, const char *url)
{
  uint8_t *mem;
  size_t size;
  event_t *e;

  if((mem = fa_load_and_close(fh, &size)) == NULL) {
    snprintf(errbuf, errlen, "Unable to read data from file");
    return NULL;
  }

  e = fa_gme_playfile_internal(mp, mem, size, errbuf, errlen, hold, 0, url);
  free(mem);
  return e;
}
Пример #3
0
static image_t *
thumb_from_attachment(const char *url, int64_t offset, int size,
                      char *errbuf, size_t errlen, const char *cacheid,
                      time_t mtime)
{
  fa_handle_t *fh = fa_open(url, errbuf, errlen);
  if(fh == NULL)
    return NULL;

  fh = fa_slice_open(fh, offset, size);
  buf_t *buf = fa_load_and_close(fh);
  if(buf == NULL) {
    snprintf(errbuf, errlen, "Load error");
    return NULL;
  }
  image_t *img = fa_imageloader_buf(buf, errbuf, errlen);

  if(img != NULL) {
    blobcache_put(cacheid, "videothumb", buf, INT32_MAX, NULL, mtime, 0);
  }

  buf_release(buf);
  return img;
}