• Home
  • Raw
  • Download

Lines Matching refs:lame

191 static gboolean gst_lamemp3enc_setup (GstLameMP3Enc * lame, GstTagList ** tags);
209 gst_lamemp3enc_release_memory (GstLameMP3Enc * lame) in gst_lamemp3enc_release_memory() argument
211 if (lame->lgf) { in gst_lamemp3enc_release_memory()
212 lame_close (lame->lgf); in gst_lamemp3enc_release_memory()
213 lame->lgf = NULL; in gst_lamemp3enc_release_memory()
294 gst_lamemp3enc_init (GstLameMP3Enc * lame) in gst_lamemp3enc_init() argument
296 GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (lame)); in gst_lamemp3enc_init()
302 GstLameMP3Enc *lame = GST_LAMEMP3ENC (enc); in gst_lamemp3enc_start() local
304 GST_DEBUG_OBJECT (lame, "start"); in gst_lamemp3enc_start()
306 if (!lame->adapter) in gst_lamemp3enc_start()
307 lame->adapter = gst_adapter_new (); in gst_lamemp3enc_start()
308 gst_adapter_clear (lame->adapter); in gst_lamemp3enc_start()
316 GstLameMP3Enc *lame = GST_LAMEMP3ENC (enc); in gst_lamemp3enc_stop() local
318 GST_DEBUG_OBJECT (lame, "stop"); in gst_lamemp3enc_stop()
320 if (lame->adapter) { in gst_lamemp3enc_stop()
321 g_object_unref (lame->adapter); in gst_lamemp3enc_stop()
322 lame->adapter = NULL; in gst_lamemp3enc_stop()
325 gst_lamemp3enc_release_memory (lame); in gst_lamemp3enc_stop()
332 GstLameMP3Enc *lame; in gst_lamemp3enc_set_format() local
339 lame = GST_LAMEMP3ENC (enc); in gst_lamemp3enc_set_format()
342 lame->samplerate = GST_AUDIO_INFO_RATE (info); in gst_lamemp3enc_set_format()
343 lame->num_channels = GST_AUDIO_INFO_CHANNELS (info); in gst_lamemp3enc_set_format()
346 gst_lamemp3enc_release_memory (lame); in gst_lamemp3enc_set_format()
348 GST_DEBUG_OBJECT (lame, "setting up lame"); in gst_lamemp3enc_set_format()
349 if (!gst_lamemp3enc_setup (lame, &tags)) in gst_lamemp3enc_set_format()
352 out_samplerate = lame_get_out_samplerate (lame->lgf); in gst_lamemp3enc_set_format()
355 if (out_samplerate != lame->samplerate) { in gst_lamemp3enc_set_format()
356 GST_WARNING_OBJECT (lame, in gst_lamemp3enc_set_format()
358 out_samplerate, lame->samplerate); in gst_lamemp3enc_set_format()
360 lame->out_samplerate = out_samplerate; in gst_lamemp3enc_set_format()
362 version = lame_get_version (lame->lgf); in gst_lamemp3enc_set_format()
375 "channels", G_TYPE_INT, lame->mono ? 1 : lame->num_channels, in gst_lamemp3enc_set_format()
385 latency = gst_util_uint64_scale_int (lame_get_framesize (lame->lgf), in gst_lamemp3enc_set_format()
386 GST_SECOND, lame->samplerate); in gst_lamemp3enc_set_format()
400 GST_ELEMENT_ERROR (lame, LIBRARY, SETTINGS, (NULL), in gst_lamemp3enc_set_format()
406 GST_ELEMENT_ERROR (lame, LIBRARY, SETTINGS, in gst_lamemp3enc_set_format()
453 GstLameMP3Enc *lame; in gst_lamemp3enc_set_property() local
455 lame = GST_LAMEMP3ENC (object); in gst_lamemp3enc_set_property()
459 lame->target = g_value_get_enum (value); in gst_lamemp3enc_set_property()
462 lame->bitrate = g_value_get_int (value); in gst_lamemp3enc_set_property()
465 lame->cbr = g_value_get_boolean (value); in gst_lamemp3enc_set_property()
468 lame->quality = g_value_get_float (value); in gst_lamemp3enc_set_property()
471 lame->encoding_engine_quality = g_value_get_enum (value); in gst_lamemp3enc_set_property()
474 lame->mono = g_value_get_boolean (value); in gst_lamemp3enc_set_property()
486 GstLameMP3Enc *lame; in gst_lamemp3enc_get_property() local
488 lame = GST_LAMEMP3ENC (object); in gst_lamemp3enc_get_property()
492 g_value_set_enum (value, lame->target); in gst_lamemp3enc_get_property()
495 g_value_set_int (value, lame->bitrate); in gst_lamemp3enc_get_property()
498 g_value_set_boolean (value, lame->cbr); in gst_lamemp3enc_get_property()
501 g_value_set_float (value, lame->quality); in gst_lamemp3enc_get_property()
504 g_value_set_enum (value, lame->encoding_engine_quality); in gst_lamemp3enc_get_property()
507 g_value_set_boolean (value, lame->mono); in gst_lamemp3enc_get_property()
536 mp3_type_frame_length_from_header (GstLameMP3Enc * lame, guint32 header, in mp3_type_frame_length_from_header() argument
587 GST_DEBUG_OBJECT (lame, "Calculated mp3 frame length of %u bytes", length); in mp3_type_frame_length_from_header()
588 GST_DEBUG_OBJECT (lame, "samplerate = %lu, bitrate = %lu, version = %lu, " in mp3_type_frame_length_from_header()
611 mp3_sync_check (GstLameMP3Enc * lame, unsigned long head) in mp3_sync_check() argument
613 GST_DEBUG_OBJECT (lame, "checking mp3 header 0x%08lx", head); in mp3_sync_check()
616 GST_WARNING_OBJECT (lame, "invalid sync"); in mp3_sync_check()
621 GST_WARNING_OBJECT (lame, "invalid MPEG version: 0x%lx", (head >> 19) & 3); in mp3_sync_check()
626 GST_WARNING_OBJECT (lame, "invalid layer: 0x%lx", (head >> 17) & 3); in mp3_sync_check()
631 GST_WARNING_OBJECT (lame, "invalid bitrate: 0x%lx." in mp3_sync_check()
636 GST_WARNING_OBJECT (lame, "invalid bitrate: 0x%lx", (head >> 12) & 0xf); in mp3_sync_check()
641 GST_WARNING_OBJECT (lame, "invalid samplerate: 0x%lx", (head >> 10) & 0x3); in mp3_sync_check()
648 GST_WARNING_OBJECT (lame, "invalid emphasis: 0x%lx", head & 0x3); in mp3_sync_check()
657 gst_lamemp3enc_finish_frames (GstLameMP3Enc * lame) in gst_lamemp3enc_finish_frames() argument
665 ((av = gst_adapter_available (lame->adapter)) > 4)) { in gst_lamemp3enc_finish_frames()
671 data = gst_adapter_map (lame->adapter, 4); in gst_lamemp3enc_finish_frames()
673 gst_adapter_unmap (lame->adapter); in gst_lamemp3enc_finish_frames()
675 if (!mp3_sync_check (lame, header)) in gst_lamemp3enc_finish_frames()
678 size = mp3_type_frame_length_from_header (lame, header, &version, &layer, in gst_lamemp3enc_finish_frames()
681 if (G_UNLIKELY (layer != 3 || rate != lame->out_samplerate)) { in gst_lamemp3enc_finish_frames()
682 GST_DEBUG_OBJECT (lame, in gst_lamemp3enc_finish_frames()
690 GST_LOG_OBJECT (lame, "frame size %u (> %d)", size, av); in gst_lamemp3enc_finish_frames()
698 samples_per_frame *= lame->samplerate; in gst_lamemp3enc_finish_frames()
699 samples_per_frame /= lame->out_samplerate; in gst_lamemp3enc_finish_frames()
702 mp3_buf = gst_adapter_take_buffer (lame->adapter, size); in gst_lamemp3enc_finish_frames()
704 result = gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (lame), in gst_lamemp3enc_finish_frames()
714 GST_ELEMENT_ERROR (lame, STREAM, ENCODE, in gst_lamemp3enc_finish_frames()
722 gst_lamemp3enc_flush_full (GstLameMP3Enc * lame, gboolean push) in gst_lamemp3enc_flush_full() argument
730 if (!lame->lgf) in gst_lamemp3enc_flush_full()
735 size = lame_encode_flush (lame->lgf, map.data, 7200); in gst_lamemp3enc_flush_full()
740 GST_DEBUG_OBJECT (lame, "collecting final %d bytes", size); in gst_lamemp3enc_flush_full()
741 gst_adapter_push (lame->adapter, buf); in gst_lamemp3enc_flush_full()
744 GST_DEBUG_OBJECT (lame, "no final packet (size=%d, push=%d)", size, push); in gst_lamemp3enc_flush_full()
750 result = gst_lamemp3enc_finish_frames (lame); in gst_lamemp3enc_flush_full()
753 gst_adapter_clear (lame->adapter); in gst_lamemp3enc_flush_full()
757 if ((av = gst_adapter_available (lame->adapter))) { in gst_lamemp3enc_flush_full()
759 GST_WARNING_OBJECT (lame, "unparsed %d bytes left after flushing", av); in gst_lamemp3enc_flush_full()
761 gst_adapter_clear (lame->adapter); in gst_lamemp3enc_flush_full()
776 GstLameMP3Enc *lame; in gst_lamemp3enc_handle_frame() local
783 lame = GST_LAMEMP3ENC (enc); in gst_lamemp3enc_handle_frame()
787 return gst_lamemp3enc_flush_full (lame, TRUE); in gst_lamemp3enc_handle_frame()
799 if (lame->num_channels == 1) { in gst_lamemp3enc_handle_frame()
800 mp3_size = lame_encode_buffer (lame->lgf, in gst_lamemp3enc_handle_frame()
804 mp3_size = lame_encode_buffer_interleaved (lame->lgf, in gst_lamemp3enc_handle_frame()
806 num_samples / lame->num_channels, mp3_map.data, mp3_buffer_size); in gst_lamemp3enc_handle_frame()
810 GST_LOG_OBJECT (lame, "encoded %" G_GSIZE_FORMAT " bytes of audio " in gst_lamemp3enc_handle_frame()
818 gst_adapter_push (lame->adapter, mp3_buf); in gst_lamemp3enc_handle_frame()
819 result = gst_lamemp3enc_finish_frames (lame); in gst_lamemp3enc_handle_frame()
835 gst_lamemp3enc_setup (GstLameMP3Enc * lame, GstTagList ** tags) in gst_lamemp3enc_setup() argument
841 GST_ERROR_OBJECT (lame, "setup failed: " G_STRINGIFY (command)); \ in gst_lamemp3enc_setup()
853 GST_DEBUG_OBJECT (lame, "starting setup"); in gst_lamemp3enc_setup()
855 lame->lgf = lame_init (); in gst_lamemp3enc_setup()
857 if (lame->lgf == NULL) in gst_lamemp3enc_setup()
863 lame_set_in_samplerate (lame->lgf, lame->samplerate); in gst_lamemp3enc_setup()
866 allowed_caps = gst_pad_get_allowed_caps (GST_AUDIO_ENCODER_SRC_PAD (lame)); in gst_lamemp3enc_setup()
875 GST_DEBUG_OBJECT (lame, "Setting sample rate to %d as fixed in src caps", in gst_lamemp3enc_setup()
877 lame_set_out_samplerate (lame->lgf, samplerate); in gst_lamemp3enc_setup()
879 GST_DEBUG_OBJECT (lame, "Letting lame choose sample rate"); in gst_lamemp3enc_setup()
880 lame_set_out_samplerate (lame->lgf, 0); in gst_lamemp3enc_setup()
885 GST_DEBUG_OBJECT (lame, "No peer yet, letting lame choose sample rate"); in gst_lamemp3enc_setup()
886 lame_set_out_samplerate (lame->lgf, 0); in gst_lamemp3enc_setup()
889 CHECK_ERROR (lame_set_num_channels (lame->lgf, lame->num_channels)); in gst_lamemp3enc_setup()
890 CHECK_ERROR (lame_set_bWriteVbrTag (lame->lgf, 0)); in gst_lamemp3enc_setup()
892 if (lame->target == LAMEMP3ENC_TARGET_QUALITY) { in gst_lamemp3enc_setup()
893 CHECK_ERROR (lame_set_VBR (lame->lgf, vbr_default)); in gst_lamemp3enc_setup()
894 CHECK_ERROR (lame_set_VBR_quality (lame->lgf, lame->quality)); in gst_lamemp3enc_setup()
896 if (lame->cbr) { in gst_lamemp3enc_setup()
897 CHECK_AND_FIXUP_BITRATE (lame, "bitrate", lame->bitrate); in gst_lamemp3enc_setup()
898 CHECK_ERROR (lame_set_VBR (lame->lgf, vbr_off)); in gst_lamemp3enc_setup()
899 CHECK_ERROR (lame_set_brate (lame->lgf, lame->bitrate)); in gst_lamemp3enc_setup()
901 CHECK_ERROR (lame_set_VBR (lame->lgf, vbr_abr)); in gst_lamemp3enc_setup()
902 CHECK_ERROR (lame_set_VBR_mean_bitrate_kbps (lame->lgf, lame->bitrate)); in gst_lamemp3enc_setup()
905 lame->bitrate * 1000, NULL); in gst_lamemp3enc_setup()
908 if (lame->encoding_engine_quality == LAMEMP3ENC_ENCODING_ENGINE_QUALITY_FAST) in gst_lamemp3enc_setup()
909 CHECK_ERROR (lame_set_quality (lame->lgf, 7)); in gst_lamemp3enc_setup()
910 else if (lame->encoding_engine_quality == in gst_lamemp3enc_setup()
912 CHECK_ERROR (lame_set_quality (lame->lgf, 2)); in gst_lamemp3enc_setup()
915 if (lame->mono) in gst_lamemp3enc_setup()
916 CHECK_ERROR (lame_set_mode (lame->lgf, MONO)); in gst_lamemp3enc_setup()
919 if ((retval = lame_init_params (lame->lgf)) >= 0) { in gst_lamemp3enc_setup()
923 (lame->target == LAMEMP3ENC_TARGET_QUALITY) ? "quality" : "bitrate", in gst_lamemp3enc_setup()
924 lame->quality, lame->bitrate, lame->samplerate, lame->num_channels); in gst_lamemp3enc_setup()
927 GST_ERROR_OBJECT (lame, "lame_init_params returned %d", retval); in gst_lamemp3enc_setup()
931 GST_DEBUG_OBJECT (lame, "done with setup"); in gst_lamemp3enc_setup()