Example #1
0
void tsmf_presentation_stop(TSMF_PRESENTATION* presentation)
{
	LIST_ITEM* item;
	TSMF_STREAM* stream;

	tsmf_presentation_flush(presentation);

	for (item = presentation->stream_list->head; item; item = item->next)
	{
		stream = (TSMF_STREAM*) item->data;
		tsmf_stream_stop(stream);
	}

	tsmf_presentation_restore_last_video_frame(presentation);

	if (presentation->last_rects)
	{
		free(presentation->last_rects);
		presentation->last_rects = NULL;
	}

	presentation->last_num_rects = 0;

	if (presentation->output_rects)
	{
		free(presentation->output_rects);
		presentation->output_rects = NULL;
	}

	presentation->output_num_rects = 0;
}
Example #2
0
void tsmf_presentation_stop(TSMF_PRESENTATION* presentation)
{
	UINT32 index;
	UINT32 count;
	TSMF_STREAM* stream;
	tsmf_presentation_flush(presentation);
	ArrayList_Lock(presentation->stream_list);
	count = ArrayList_Count(presentation->stream_list);

	for (index = 0; index < count; index++)
	{
		stream = (TSMF_STREAM *) ArrayList_GetItem(presentation->stream_list, index);
		tsmf_stream_stop(stream);
	}

	ArrayList_Unlock(presentation->stream_list);
}
Example #3
0
int
tsmf_ifman_on_flush(TSMF_IFMAN * ifman)
{
	TSMF_PRESENTATION * presentation;
	uint32 StreamId;

	StreamId = GET_UINT32(ifman->input_buffer, 16);
	LLOGLN(0, ("tsmf_ifman_on_flush: StreamId %d", StreamId));

	presentation = tsmf_presentation_find_by_id(ifman->presentation_id);
	if (presentation == NULL)
	{
		LLOGLN(0, ("tsmf_ifman_on_sample: unknown presentation id"));
		return 1;
	}

	tsmf_presentation_flush(presentation);

	ifman->output_pending = 1;
	return 0;
}
Example #4
0
int tsmf_ifman_on_flush(TSMF_IFMAN* ifman)
{
	UINT32 StreamId;
	TSMF_PRESENTATION* presentation;

	Stream_Seek(ifman->input, 16);
	Stream_Read_UINT32(ifman->input, StreamId);
	DEBUG_DVC("StreamId %d", StreamId);

	presentation = tsmf_presentation_find_by_id(ifman->presentation_id);

	if (presentation == NULL)
	{
		DEBUG_WARN("unknown presentation id");
		return 1;
	}

	tsmf_presentation_flush(presentation);

	ifman->output_pending = TRUE;

	return 0;
}