static GstStateChangeReturn gst_jif_mux_change_state (GstElement * element, GstStateChange transition) { GstStateChangeReturn ret; GstJifMux *self = GST_JIF_MUX_CAST (element); switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: break; case GST_STATE_CHANGE_READY_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: break; default: break; } ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); switch (transition) { case GST_STATE_CHANGE_PLAYING_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_READY: gst_tag_setter_reset_tags (GST_TAG_SETTER (self)); break; case GST_STATE_CHANGE_READY_TO_NULL: break; default: break; } return ret; }
static gboolean gst_vp8_enc_stop (GstBaseVideoEncoder * base_video_encoder) { GstVP8Enc *encoder; GST_DEBUG_OBJECT (base_video_encoder, "stop"); encoder = GST_VP8_ENC (base_video_encoder); if (encoder->inited) { vpx_codec_destroy (&encoder->encoder); encoder->inited = FALSE; } if (encoder->first_pass_cache_content) { g_byte_array_free (encoder->first_pass_cache_content, TRUE); encoder->first_pass_cache_content = NULL; } if (encoder->last_pass_cache_content.buf) { g_free (encoder->last_pass_cache_content.buf); encoder->last_pass_cache_content.buf = NULL; encoder->last_pass_cache_content.sz = 0; } gst_tag_setter_reset_tags (GST_TAG_SETTER (encoder)); return TRUE; }
static GstStateChangeReturn gst_wavenc_change_state (GstElement * element, GstStateChange transition) { GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; GstWavEnc *wavenc = GST_WAVENC (element); switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: wavenc->format = 0; wavenc->channels = 0; wavenc->width = 0; wavenc->rate = 0; /* use bogus size initially, we'll write the real * header when we get EOS and know the exact length */ wavenc->audio_length = 0x7FFF0000; wavenc->meta_length = 0; wavenc->sent_header = FALSE; /* its true because we haven't writen anything */ wavenc->finished_properly = TRUE; break; default: break; } ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); if (ret != GST_STATE_CHANGE_SUCCESS) return ret; switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY: if (!wavenc->finished_properly) { GST_ELEMENT_WARNING (wavenc, STREAM, MUX, ("Wav stream not finished properly"), ("Wav stream not finished properly, no EOS received " "before shutdown")); } break; case GST_STATE_CHANGE_READY_TO_NULL: GST_DEBUG_OBJECT (wavenc, "tags: %p", wavenc->tags); if (wavenc->tags) { gst_tag_list_unref (wavenc->tags); wavenc->tags = NULL; } GST_DEBUG_OBJECT (wavenc, "toc: %p", wavenc->toc); if (wavenc->toc) { gst_toc_unref (wavenc->toc); wavenc->toc = NULL; } gst_tag_setter_reset_tags (GST_TAG_SETTER (wavenc)); gst_toc_setter_reset (GST_TOC_SETTER (wavenc)); break; default: break; } return ret; }
void QtCamMetaData::reset() { GstTagSetter *s = d_ptr->setter(); if (!s) { return; } gst_tag_setter_reset_tags(s); gst_object_unref(s); }
static gboolean gst_vorbis_enc_stop (GstAudioEncoder * enc) { GstVorbisEnc *vorbisenc = GST_VORBISENC (enc); GST_DEBUG_OBJECT (enc, "stop"); vorbis_block_clear (&vorbisenc->vb); vorbis_dsp_clear (&vorbisenc->vd); vorbis_info_clear (&vorbisenc->vi); g_free (vorbisenc->last_message); vorbisenc->last_message = NULL; gst_tag_list_unref (vorbisenc->tags); vorbisenc->tags = NULL; gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); return TRUE; }
static gboolean gst_speex_enc_stop (GstAudioEncoder * benc) { GstSpeexEnc *enc = GST_SPEEX_ENC (benc); GST_DEBUG_OBJECT (enc, "stop"); enc->header_sent = FALSE; if (enc->state) { speex_encoder_destroy (enc->state); enc->state = NULL; } speex_bits_destroy (&enc->bits); gst_tag_list_unref (enc->tags); enc->tags = NULL; gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); return TRUE; }
static gboolean gst_opus_enc_stop (GstAudioEncoder * benc) { GstOpusEnc *enc = GST_OPUS_ENC (benc); GST_DEBUG_OBJECT (enc, "stop"); enc->header_sent = FALSE; if (enc->state) { opus_multistream_encoder_destroy (enc->state); enc->state = NULL; } gst_tag_list_free (enc->tags); enc->tags = NULL; g_slist_foreach (enc->headers, (GFunc) gst_buffer_unref, NULL); g_slist_free (enc->headers); enc->headers = NULL; gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); return TRUE; }
static GstStateChangeReturn gst_ffmpegmux_change_state (GstElement * element, GstStateChange transition) { GstFlowReturn ret; GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) (element); switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: break; case GST_STATE_CHANGE_READY_TO_PAUSED: gst_collect_pads_start (ffmpegmux->collect); break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: break; case GST_STATE_CHANGE_PAUSED_TO_READY: gst_collect_pads_stop (ffmpegmux->collect); break; default: break; } ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); switch (transition) { case GST_STATE_CHANGE_PLAYING_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_READY: gst_tag_setter_reset_tags (GST_TAG_SETTER (ffmpegmux)); if (ffmpegmux->opened) { ffmpegmux->opened = FALSE; url_fclose (ffmpegmux->context->pb); } break; case GST_STATE_CHANGE_READY_TO_NULL: break; default: break; } return ret; }
static gboolean gst_celt_enc_stop (GstAudioEncoder * benc) { GstCeltEnc *enc = GST_CELT_ENC (benc); GST_DEBUG_OBJECT (enc, "stop"); enc->header_sent = FALSE; if (enc->state) { celt_encoder_destroy (enc->state); enc->state = NULL; } if (enc->mode) { celt_mode_destroy (enc->mode); enc->mode = NULL; } memset (&enc->header, 0, sizeof (enc->header)); gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); return TRUE; }
static gpointer test_threads_thread_func3 (gpointer data) { GstTagSetter *setter = GST_TAG_SETTER (data); GTimer *timer; timer = g_timer_new (); g_atomic_int_inc (&threads_running); while (g_atomic_int_get (&spin_and_wait)) g_usleep (0); GST_INFO ("Go!"); g_timer_start (timer); while (g_timer_elapsed (timer, NULL) < THREADS_TEST_SECONDS) { gst_tag_setter_reset_tags (setter); } g_timer_destroy (timer); GST_INFO ("Done"); return NULL; }