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)); }
FeBaseStream::~FeBaseStream() { if ( codec_ctx ) { avcodec_close( codec_ctx ); codec_ctx = NULL; } clear_packet_queue(); codec = NULL; at_end = false; stream_id = -1; }
void FeBaseStream::stop() { clear_packet_queue(); at_end=false; }