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; }
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); }
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; }
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; }