• Home
  • Raw
  • Download

Lines Matching refs:enc

87 static void gst_mpeg2enc_reset (GstMpeg2enc * enc);
159 GstMpeg2enc *enc = GST_MPEG2ENC (object); in gst_mpeg2enc_finalize() local
162 gst_mpeg2enc_reset (enc); in gst_mpeg2enc_finalize()
164 delete enc->options; in gst_mpeg2enc_finalize()
166 g_mutex_clear (&enc->tlock); in gst_mpeg2enc_finalize()
167 g_cond_clear (&enc->cond); in gst_mpeg2enc_finalize()
173 gst_mpeg2enc_init (GstMpeg2enc * enc) in gst_mpeg2enc_init() argument
175 enc->options = new GstMpeg2EncOptions (); in gst_mpeg2enc_init()
176 enc->encoder = NULL; in gst_mpeg2enc_init()
178 g_mutex_init (&enc->tlock); in gst_mpeg2enc_init()
179 g_cond_init (&enc->cond); in gst_mpeg2enc_init()
180 enc->started = FALSE; in gst_mpeg2enc_init()
182 gst_pad_set_activatemode_function (GST_VIDEO_ENCODER_SRC_PAD (enc), in gst_mpeg2enc_init()
185 gst_mpeg2enc_reset (enc); in gst_mpeg2enc_init()
193 GstMpeg2enc *enc; in gst_mpeg2enc_src_activate_mode() local
195 enc = GST_MPEG2ENC (parent); in gst_mpeg2enc_src_activate_mode()
204 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_src_activate_mode()
205 enc->eos = TRUE; in gst_mpeg2enc_src_activate_mode()
206 enc->srcresult = GST_FLOW_FLUSHING; in gst_mpeg2enc_src_activate_mode()
207 GST_MPEG2ENC_SIGNAL (enc); in gst_mpeg2enc_src_activate_mode()
208 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_src_activate_mode()
215 gst_mpeg2enc_reset (GstMpeg2enc * enc) in gst_mpeg2enc_reset() argument
217 enc->eos = FALSE; in gst_mpeg2enc_reset()
218 enc->srcresult = GST_FLOW_OK; in gst_mpeg2enc_reset()
221 if (enc->pending_frame) { in gst_mpeg2enc_reset()
222 gst_video_encoder_finish_frame (GST_VIDEO_ENCODER (enc), enc->pending_frame); in gst_mpeg2enc_reset()
223 enc->pending_frame = NULL; in gst_mpeg2enc_reset()
226 if (enc->encoder) { in gst_mpeg2enc_reset()
227 delete enc->encoder; in gst_mpeg2enc_reset()
229 enc->encoder = NULL; in gst_mpeg2enc_reset()
236 GstMpeg2enc *enc = GST_MPEG2ENC (video_encoder); in gst_mpeg2enc_start() local
240 if (!enc->options) { in gst_mpeg2enc_start()
241 GST_ELEMENT_ERROR (enc, LIBRARY, INIT, in gst_mpeg2enc_start()
246 if (G_UNLIKELY (enc->srcresult != GST_FLOW_OK)) { in gst_mpeg2enc_start()
247 GST_ELEMENT_ERROR (enc, LIBRARY, INIT, in gst_mpeg2enc_start()
259 GstMpeg2enc *enc; in gst_mpeg2enc_stop() local
263 enc = GST_MPEG2ENC (video_encoder); in gst_mpeg2enc_stop()
266 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_stop()
267 enc->eos = TRUE; in gst_mpeg2enc_stop()
268 enc->srcresult = GST_FLOW_FLUSHING; in gst_mpeg2enc_stop()
269 GST_MPEG2ENC_SIGNAL (enc); in gst_mpeg2enc_stop()
270 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_stop()
273 if (enc->started) { in gst_mpeg2enc_stop()
275 enc->started = FALSE; in gst_mpeg2enc_stop()
279 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_stop()
280 gst_mpeg2enc_reset (enc); in gst_mpeg2enc_stop()
281 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_stop()
308 gst_mpeg2enc_get_fps (GstMpeg2enc * enc) in gst_mpeg2enc_get_fps() argument
317 if (enc->options->norm == 'n') in gst_mpeg2enc_get_fps()
319 else if (enc->options->norm == 0) in gst_mpeg2enc_get_fps()
329 GstMpeg2enc *enc; in gst_mpeg2enc_set_format() local
332 enc = GST_MPEG2ENC (video_encoder); in gst_mpeg2enc_set_format()
336 if (enc->input_state) in gst_mpeg2enc_set_format()
337 gst_video_codec_state_unref (enc->input_state); in gst_mpeg2enc_set_format()
338 enc->input_state = gst_video_codec_state_ref (state); in gst_mpeg2enc_set_format()
341 if (enc->encoder != NULL) in gst_mpeg2enc_set_format()
351 "mpegversion", G_TYPE_INT, (enc->options->mpeg == 1)?1:2, NULL); in gst_mpeg2enc_set_format()
358 gst_video_encoder_negotiate (GST_VIDEO_ENCODER (enc)); in gst_mpeg2enc_set_format()
364 GST_WARNING_OBJECT (enc, "refused caps %" GST_PTR_FORMAT, state->caps); in gst_mpeg2enc_set_format()
370 GST_WARNING_OBJECT (enc, "refused renegotiation (to %" GST_PTR_FORMAT ")", in gst_mpeg2enc_set_format()
378 gst_mpeg2enc_structure_from_norm (GstMpeg2enc * enc, gint horiz, in gst_mpeg2enc_structure_from_norm() argument
386 switch (enc->options->norm) { in gst_mpeg2enc_structure_from_norm()
413 gst_mpeg2enc_add_fps (structure, gst_mpeg2enc_get_fps (enc)); in gst_mpeg2enc_structure_from_norm()
422 GstMpeg2enc *enc = GST_MPEG2ENC (video_encoder); in gst_mpeg2enc_getcaps() local
428 switch (enc->options->format) { in gst_mpeg2enc_getcaps()
431 caps = gst_caps_new_full (gst_mpeg2enc_structure_from_norm (enc, in gst_mpeg2enc_getcaps()
436 caps = gst_caps_new_full (gst_mpeg2enc_structure_from_norm (enc, in gst_mpeg2enc_getcaps()
441 caps = gst_caps_new_full (gst_mpeg2enc_structure_from_norm (enc, in gst_mpeg2enc_getcaps()
445 gst_mpeg2enc_structure_from_norm (enc, 704, 576, 480)); in gst_mpeg2enc_getcaps()
449 caps = gst_caps_new_full (gst_mpeg2enc_structure_from_norm (enc, in gst_mpeg2enc_getcaps()
453 gst_mpeg2enc_structure_from_norm (enc, 704, 576, 480)); in gst_mpeg2enc_getcaps()
462 gst_mpeg2enc_get_fps (enc)); in gst_mpeg2enc_getcaps()
472 GstMpeg2enc *enc; in gst_mpeg2enc_finish() local
474 enc = GST_MPEG2ENC (video_encoder); in gst_mpeg2enc_finish()
479 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_finish()
480 enc->eos = TRUE; in gst_mpeg2enc_finish()
481 GST_MPEG2ENC_SIGNAL (enc); in gst_mpeg2enc_finish()
482 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_finish()
490 GstMpeg2enc *enc; in gst_mpeg2enc_sink_event() local
493 enc = GST_MPEG2ENC (video_encoder); in gst_mpeg2enc_sink_event()
512 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_sink_event()
513 enc->srcresult = GST_FLOW_OK; in gst_mpeg2enc_sink_event()
514 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_sink_event()
518 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_sink_event()
519 enc->eos = TRUE; in gst_mpeg2enc_sink_event()
520 GST_MPEG2ENC_SIGNAL (enc); in gst_mpeg2enc_sink_event()
521 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_sink_event()
530 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_sink_event()
531 while (enc->pending_frame != NULL) in gst_mpeg2enc_sink_event()
532 GST_MPEG2ENC_WAIT (enc); in gst_mpeg2enc_sink_event()
533 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_sink_event()
547 GstMpeg2enc *enc = GST_MPEG2ENC (video_encoder); in gst_mpeg2enc_loop() local
549 GST_DEBUG_OBJECT (enc, "encoding task loop:START"); in gst_mpeg2enc_loop()
552 if (enc->srcresult != GST_FLOW_OK) { in gst_mpeg2enc_loop()
553 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_loop()
554 enc->srcresult = GST_FLOW_ERROR; in gst_mpeg2enc_loop()
555 GST_MPEG2ENC_SIGNAL (enc); in gst_mpeg2enc_loop()
556 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_loop()
559 GST_DEBUG_OBJECT (enc, "encoding task loop: flow OK"); in gst_mpeg2enc_loop()
561 if (!enc->encoder) { in gst_mpeg2enc_loop()
564 GstVideoInfo *info = &enc->input_state->info; in gst_mpeg2enc_loop()
567 enc->encoder = new GstMpeg2Encoder (enc->options, GST_ELEMENT (video_encoder), in gst_mpeg2enc_loop()
570 ret = enc->encoder->setup (); in gst_mpeg2enc_loop()
573 g_assert (enc->options->max_GOP_size != -1); in gst_mpeg2enc_loop()
586 latency = gst_util_uint64_scale (enc->options->max_GOP_size + 5, in gst_mpeg2enc_loop()
589 latency = gst_util_uint64_scale (enc->options->max_GOP_size + 5, in gst_mpeg2enc_loop()
596 enc->encoder->init (); in gst_mpeg2enc_loop()
599 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_loop()
600 enc->srcresult = GST_FLOW_NOT_NEGOTIATED; in gst_mpeg2enc_loop()
601 GST_MPEG2ENC_SIGNAL (enc); in gst_mpeg2enc_loop()
602 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_loop()
606 GST_DEBUG_OBJECT (enc, "encoding task loop: setup and init DONE"); in gst_mpeg2enc_loop()
610 enc->encoder->encode (); in gst_mpeg2enc_loop()
611 GST_DEBUG_OBJECT (enc, "encoding task loop: encode DONE"); in gst_mpeg2enc_loop()
613 if (!enc->eos) { in gst_mpeg2enc_loop()
614 GST_ERROR_OBJECT (enc, "encoding task ended without being eos"); in gst_mpeg2enc_loop()
616 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_loop()
617 enc->srcresult = GST_FLOW_ERROR; in gst_mpeg2enc_loop()
618 GST_MPEG2ENC_SIGNAL (enc); in gst_mpeg2enc_loop()
619 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_loop()
622 GST_DEBUG_OBJECT (enc, "encoding task loop: eos REACHED"); in gst_mpeg2enc_loop()
623 if (enc->srcresult == GST_FLOW_OK) { in gst_mpeg2enc_loop()
625 GST_DEBUG_OBJECT (enc, "encoding task loop: eos SENT"); in gst_mpeg2enc_loop()
634 GST_DEBUG_OBJECT (enc, "pausing encoding task"); in gst_mpeg2enc_loop()
641 GST_ELEMENT_ERROR (enc, CORE, NEGOTIATION, (NULL), in gst_mpeg2enc_loop()
643 if (enc->encoder) { in gst_mpeg2enc_loop()
644 delete enc->encoder; in gst_mpeg2enc_loop()
646 enc->encoder = NULL; in gst_mpeg2enc_loop()
653 GST_DEBUG_OBJECT (enc, "encoding task reached eos"); in gst_mpeg2enc_loop()
658 GST_DEBUG_OBJECT (enc, "not looping because encoding task encountered %s", in gst_mpeg2enc_loop()
659 gst_flow_get_name (enc->srcresult)); in gst_mpeg2enc_loop()
667 GstMpeg2enc *enc = GST_MPEG2ENC (video_encoder); in gst_mpeg2enc_handle_frame() local
670 GST_MPEG2ENC_MUTEX_LOCK (enc); in gst_mpeg2enc_handle_frame()
672 if (G_UNLIKELY (enc->eos)) in gst_mpeg2enc_handle_frame()
676 if (G_UNLIKELY (enc->srcresult != GST_FLOW_OK)) in gst_mpeg2enc_handle_frame()
682 if (enc->pending_frame != NULL) { in gst_mpeg2enc_handle_frame()
684 GST_VIDEO_ENCODER_STREAM_UNLOCK (enc); in gst_mpeg2enc_handle_frame()
685 GST_MPEG2ENC_WAIT (enc); in gst_mpeg2enc_handle_frame()
686 GST_VIDEO_ENCODER_STREAM_LOCK (enc); in gst_mpeg2enc_handle_frame()
689 if (G_UNLIKELY (enc->srcresult != GST_FLOW_OK)) in gst_mpeg2enc_handle_frame()
691 } while (enc->pending_frame != NULL); in gst_mpeg2enc_handle_frame()
695 enc->pending_frame = frame; in gst_mpeg2enc_handle_frame()
697 if (!enc->started) { in gst_mpeg2enc_handle_frame()
699 gst_pad_start_task (video_encoder->srcpad, (GstTaskFunction) gst_mpeg2enc_loop, enc, NULL); in gst_mpeg2enc_handle_frame()
700 enc->started = TRUE; in gst_mpeg2enc_handle_frame()
704 GST_MPEG2ENC_SIGNAL (enc); in gst_mpeg2enc_handle_frame()
705 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_handle_frame()
710 GST_DEBUG_OBJECT (enc, "ignoring frame at end-of-stream"); in gst_mpeg2enc_handle_frame()
711 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_handle_frame()
719 GstFlowReturn ret = enc->srcresult; in gst_mpeg2enc_handle_frame()
721 GST_DEBUG_OBJECT (enc, in gst_mpeg2enc_handle_frame()
723 gst_flow_get_name (enc->srcresult)); in gst_mpeg2enc_handle_frame()
725 enc->eos = TRUE; in gst_mpeg2enc_handle_frame()
727 GST_MPEG2ENC_MUTEX_UNLOCK (enc); in gst_mpeg2enc_handle_frame()