static void destroy_stream(GstScreamStream *stream)
{
    clear_packet_queue(stream->packet_queue);
    gst_atomic_queue_unref(stream->packet_queue);

    g_free(stream);
}
static void clear_queue(guint stream_id, GstScreamQueue *self)
{
    GstScreamStream *stream;
    g_rw_lock_reader_lock(&self->lock);
    stream = g_hash_table_lookup(self->streams, GUINT_TO_POINTER(stream_id));
    g_rw_lock_reader_unlock(&self->lock);
    clear_packet_queue(stream->packet_queue);
    stream->enqueued_payload_size = 0;
    stream->enqueued_packets = 0;
    gst_pad_push_event(self->sink_pad,
        gst_video_event_new_upstream_force_key_unit(GST_CLOCK_TIME_NONE, FALSE, 0));
}
Esempio n. 3
0
FeBaseStream::~FeBaseStream()
{
	if ( codec_ctx )
	{
		avcodec_close( codec_ctx );
		codec_ctx = NULL;
	}

	clear_packet_queue();

	codec = NULL;
	at_end = false;
	stream_id = -1;
}
Esempio n. 4
0
void FeBaseStream::stop()
{
	clear_packet_queue();
	at_end=false;
}