Example #1
0
static struct input_stream *
bz2_open_stream(struct archive_file *file, const char *path,
		GMutex *mutex, GCond *cond,
		GError **error_r)
{
	struct bz2_archive_file *context = (struct bz2_archive_file *) file;
	struct bz2_input_stream *bis = g_new(struct bz2_input_stream, 1);

	input_stream_init(&bis->base, &bz2_inputplugin, path,
			  mutex, cond);

	bis->archive = context;

	bis->base.ready = true;
	bis->base.seekable = false;

	if (!bz2_alloc(bis, error_r)) {
		input_stream_deinit(&bis->base);
		g_free(bis);
		return NULL;
	}

	bis->eof = false;

	refcount_inc(&context->ref);

	return &bis->base;
}
static void
input_file_close(struct input_stream *is)
{
	struct file_input_stream *fis = (struct file_input_stream *)is;

	close(fis->fd);
	input_stream_deinit(&fis->base);
	g_free(fis);
}
Example #3
0
static void
bz2_is_close(struct input_stream *is)
{
	struct bz2_input_stream *bis = (struct bz2_input_stream *)is;

	bz2_destroy(bis);

	bz2_close(&bis->archive->base);

	input_stream_deinit(&bis->base);
	g_free(bis);
}
Example #4
0
static void
input_ffmpeg_close(struct input_stream *is)
{
	struct input_ffmpeg *i = (struct input_ffmpeg *)is;

#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,0,0)
	avio_close(i->h);
#else
	url_close(i->h);
#endif
	input_stream_deinit(&i->base);
	g_free(i);
}
Example #5
0
static void
input_despotify_close(struct input_stream *is)
{
	struct input_despotify *ctx = (struct input_despotify *)is;

	if (ctx->tag != NULL)
		tag_free(ctx->tag);

	mpd_despotify_unregister_callback(callback);
	despotify_free_track(ctx->track);
	input_stream_deinit(&ctx->base);
	g_free(ctx);
}
static void
input_cdio_close(struct input_stream *is)
{
	struct input_cdio_paranoia *i = (struct input_cdio_paranoia *)is;

	pcm_buffer_deinit(&i->conv_buffer);

	if (i->para)
		cdio_paranoia_free(i->para);
	if (i->drv)
		cdio_cddap_close_no_free_cdio( i->drv);
	if (i->cdio)
		cdio_destroy( i->cdio );

	input_stream_deinit(&i->base);
	g_free(i);
}
Example #7
0
/**
 * Frees this stream (but not the input_stream struct itself).
 */
static void
input_curl_free(struct input_curl *c)
{
	if (c->tag != NULL)
		tag_free(c->tag);
	g_free(c->meta_name);

	input_curl_easy_free(c);

	if (c->multi != NULL)
		curl_multi_cleanup(c->multi);

	g_queue_free(c->buffers);

	g_free(c->url);
	input_stream_deinit(&c->base);
	g_free(c);
}