Lines Matching refs:mp3parse
108 mp3parse, GstBuffer * buf);
195 gst_mpeg_audio_parse_reset (GstMpegAudioParse * mp3parse) in gst_mpeg_audio_parse_reset() argument
197 mp3parse->channels = -1; in gst_mpeg_audio_parse_reset()
198 mp3parse->rate = -1; in gst_mpeg_audio_parse_reset()
199 mp3parse->sent_codec_tag = FALSE; in gst_mpeg_audio_parse_reset()
200 mp3parse->last_posted_crc = CRC_UNKNOWN; in gst_mpeg_audio_parse_reset()
201 mp3parse->last_posted_channel_mode = MPEG_AUDIO_CHANNEL_MODE_UNKNOWN; in gst_mpeg_audio_parse_reset()
202 mp3parse->freerate = 0; in gst_mpeg_audio_parse_reset()
204 mp3parse->hdr_bitrate = 0; in gst_mpeg_audio_parse_reset()
205 mp3parse->bitrate_is_constant = TRUE; in gst_mpeg_audio_parse_reset()
207 mp3parse->xing_flags = 0; in gst_mpeg_audio_parse_reset()
208 mp3parse->xing_bitrate = 0; in gst_mpeg_audio_parse_reset()
209 mp3parse->xing_frames = 0; in gst_mpeg_audio_parse_reset()
210 mp3parse->xing_total_time = 0; in gst_mpeg_audio_parse_reset()
211 mp3parse->xing_bytes = 0; in gst_mpeg_audio_parse_reset()
212 mp3parse->xing_vbr_scale = 0; in gst_mpeg_audio_parse_reset()
213 memset (mp3parse->xing_seek_table, 0, sizeof (mp3parse->xing_seek_table)); in gst_mpeg_audio_parse_reset()
214 memset (mp3parse->xing_seek_table_inverse, 0, in gst_mpeg_audio_parse_reset()
215 sizeof (mp3parse->xing_seek_table_inverse)); in gst_mpeg_audio_parse_reset()
217 mp3parse->vbri_bitrate = 0; in gst_mpeg_audio_parse_reset()
218 mp3parse->vbri_frames = 0; in gst_mpeg_audio_parse_reset()
219 mp3parse->vbri_total_time = 0; in gst_mpeg_audio_parse_reset()
220 mp3parse->vbri_bytes = 0; in gst_mpeg_audio_parse_reset()
221 mp3parse->vbri_seek_points = 0; in gst_mpeg_audio_parse_reset()
222 g_free (mp3parse->vbri_seek_table); in gst_mpeg_audio_parse_reset()
223 mp3parse->vbri_seek_table = NULL; in gst_mpeg_audio_parse_reset()
225 mp3parse->encoder_delay = 0; in gst_mpeg_audio_parse_reset()
226 mp3parse->encoder_padding = 0; in gst_mpeg_audio_parse_reset()
230 gst_mpeg_audio_parse_init (GstMpegAudioParse * mp3parse) in gst_mpeg_audio_parse_init() argument
232 gst_mpeg_audio_parse_reset (mp3parse); in gst_mpeg_audio_parse_init()
233 GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (mp3parse)); in gst_mpeg_audio_parse_init()
234 GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (mp3parse)); in gst_mpeg_audio_parse_init()
246 GstMpegAudioParse *mp3parse = GST_MPEG_AUDIO_PARSE (parse); in gst_mpeg_audio_parse_start() local
248 gst_base_parse_set_min_frame_size (GST_BASE_PARSE (mp3parse), MIN_FRAME_SIZE); in gst_mpeg_audio_parse_start()
251 gst_mpeg_audio_parse_reset (mp3parse); in gst_mpeg_audio_parse_start()
259 GstMpegAudioParse *mp3parse = GST_MPEG_AUDIO_PARSE (parse); in gst_mpeg_audio_parse_stop() local
263 gst_mpeg_audio_parse_reset (mp3parse); in gst_mpeg_audio_parse_stop()
287 mp3_type_frame_length_from_header (GstMpegAudioParse * mp3parse, guint32 header, in mp3_type_frame_length_from_header() argument
314 GST_LOG_OBJECT (mp3parse, "using freeform bitrate"); in mp3_type_frame_length_from_header()
315 bitrate = mp3parse->freerate; in mp3_type_frame_length_from_header()
340 GST_DEBUG_OBJECT (mp3parse, "Calculated mp3 frame length of %u bytes", in mp3_type_frame_length_from_header()
342 GST_DEBUG_OBJECT (mp3parse, "samplerate = %lu, bitrate = %lu, version = %lu, " in mp3_type_frame_length_from_header()
383 gst_mp3parse_validate_extended (GstMpegAudioParse * mp3parse, GstBuffer * buf, in gst_mp3parse_validate_extended() argument
410 GST_DEBUG_OBJECT (mp3parse, "At %d: header=%08X, header2=%08X, bpf=%d", in gst_mp3parse_validate_extended()
421 GST_DEBUG_OBJECT (mp3parse, "next header doesn't match " in gst_mp3parse_validate_extended()
430 GST_DEBUG_OBJECT (mp3parse, "next header invalid (bitrate)"); in gst_mp3parse_validate_extended()
435 bpf = mp3_type_frame_length_from_header (mp3parse, next_header, in gst_mp3parse_validate_extended()
440 GST_DEBUG_OBJECT (mp3parse, "next header invalid (bitrate 0)"); in gst_mp3parse_validate_extended()
457 gst_mpeg_audio_parse_head_check (GstMpegAudioParse * mp3parse, in gst_mpeg_audio_parse_head_check() argument
460 GST_DEBUG_OBJECT (mp3parse, "checking mp3 header 0x%08lx", head); in gst_mpeg_audio_parse_head_check()
463 GST_WARNING_OBJECT (mp3parse, "invalid sync"); in gst_mpeg_audio_parse_head_check()
468 GST_WARNING_OBJECT (mp3parse, "invalid MPEG version: 0x%lx", in gst_mpeg_audio_parse_head_check()
474 GST_WARNING_OBJECT (mp3parse, "invalid layer: 0x%lx", (head >> 17) & 3); in gst_mpeg_audio_parse_head_check()
479 GST_WARNING_OBJECT (mp3parse, "invalid bitrate: 0x%lx", (head >> 12) & 0xf); in gst_mpeg_audio_parse_head_check()
484 GST_WARNING_OBJECT (mp3parse, "invalid samplerate: 0x%lx", in gst_mpeg_audio_parse_head_check()
492 GST_WARNING_OBJECT (mp3parse, "invalid emphasis: 0x%lx", head & 0x3); in gst_mpeg_audio_parse_head_check()
507 gst_mp3parse_find_freerate (GstMpegAudioParse * mp3parse, GstMapInfo * map, in gst_mp3parse_find_freerate() argument
553 GST_DEBUG_OBJECT (mp3parse, "At %d: header=%08X, header2=%08X", in gst_mp3parse_find_freerate()
558 GST_DEBUG_OBJECT (mp3parse, "next header doesn't match " in gst_mp3parse_find_freerate()
566 GST_DEBUG_OBJECT (mp3parse, "next header invalid (bitrate)"); in gst_mp3parse_find_freerate()
581 GST_LOG_OBJECT (mp3parse, "calculated rate %lu", rate * 1000); in gst_mp3parse_find_freerate()
583 GST_DEBUG_OBJECT (mp3parse, "rate invalid"); in gst_mp3parse_find_freerate()
588 GST_DEBUG_OBJECT (mp3parse, "aborting"); in gst_mp3parse_find_freerate()
598 GST_DEBUG_OBJECT (mp3parse, "exceeded sanity rate; aborting"); in gst_mp3parse_find_freerate()
611 GstMpegAudioParse *mp3parse = GST_MPEG_AUDIO_PARSE (parse); in gst_mpeg_audio_parse_handle_frame() local
648 if (!gst_mpeg_audio_parse_head_check (mp3parse, header)) { in gst_mpeg_audio_parse_handle_frame()
659 mp3parse->freerate = 0; in gst_mpeg_audio_parse_handle_frame()
661 bpf = mp3_type_frame_length_from_header (mp3parse, header, in gst_mpeg_audio_parse_handle_frame()
664 if (channels != mp3parse->channels || rate != mp3parse->rate || in gst_mpeg_audio_parse_handle_frame()
665 layer != mp3parse->layer || version != mp3parse->version) in gst_mpeg_audio_parse_handle_frame()
672 GST_LOG_OBJECT (mp3parse, "possibly free format"); in gst_mpeg_audio_parse_handle_frame()
673 if (lost_sync || mp3parse->freerate == 0) { in gst_mpeg_audio_parse_handle_frame()
674 GST_DEBUG_OBJECT (mp3parse, "finding free format rate"); in gst_mpeg_audio_parse_handle_frame()
675 if (!gst_mp3parse_find_freerate (mp3parse, &map, header, draining, in gst_mpeg_audio_parse_handle_frame()
683 mp3parse->freerate = valid; in gst_mpeg_audio_parse_handle_frame()
687 bpf = mp3_type_frame_length_from_header (mp3parse, header, in gst_mpeg_audio_parse_handle_frame()
697 if (!gst_mp3parse_validate_extended (mp3parse, buf, header, bpf, draining, in gst_mpeg_audio_parse_handle_frame()
709 } else if (draining && lost_sync && caps_change && mp3parse->rate > 0) { in gst_mpeg_audio_parse_handle_frame()
731 mp3parse->rate = rate; in gst_mpeg_audio_parse_handle_frame()
732 mp3parse->channels = channels; in gst_mpeg_audio_parse_handle_frame()
733 mp3parse->layer = layer; in gst_mpeg_audio_parse_handle_frame()
734 mp3parse->version = version; in gst_mpeg_audio_parse_handle_frame()
737 if (mp3parse->layer == 1) in gst_mpeg_audio_parse_handle_frame()
738 mp3parse->spf = 384; in gst_mpeg_audio_parse_handle_frame()
739 else if (mp3parse->layer == 2) in gst_mpeg_audio_parse_handle_frame()
740 mp3parse->spf = 1152; in gst_mpeg_audio_parse_handle_frame()
741 else if (mp3parse->version == 1) { in gst_mpeg_audio_parse_handle_frame()
742 mp3parse->spf = 1152; in gst_mpeg_audio_parse_handle_frame()
745 mp3parse->spf = 576; in gst_mpeg_audio_parse_handle_frame()
758 gst_base_parse_set_frame_rate (parse, mp3parse->rate, mp3parse->spf, in gst_mpeg_audio_parse_handle_frame()
762 if (mp3parse->hdr_bitrate && mp3parse->hdr_bitrate != bitrate) { in gst_mpeg_audio_parse_handle_frame()
763 mp3parse->bitrate_is_constant = FALSE; in gst_mpeg_audio_parse_handle_frame()
765 mp3parse->hdr_bitrate = bitrate; in gst_mpeg_audio_parse_handle_frame()
768 gst_mpeg_audio_parse_handle_first_frame (mp3parse, buf); in gst_mpeg_audio_parse_handle_frame()
771 mp3parse->last_crc = crc; in gst_mpeg_audio_parse_handle_frame()
772 mp3parse->last_mode = mode; in gst_mpeg_audio_parse_handle_frame()
785 gst_mpeg_audio_parse_handle_first_frame (GstMpegAudioParse * mp3parse, in gst_mpeg_audio_parse_handle_first_frame() argument
800 if (mp3parse->sent_codec_tag) in gst_mpeg_audio_parse_handle_first_frame()
804 if (mp3parse->version == 1) { /* MPEG-1 file */ in gst_mpeg_audio_parse_handle_first_frame()
805 if (mp3parse->channels == 1) in gst_mpeg_audio_parse_handle_first_frame()
810 if (mp3parse->channels == 1) in gst_mpeg_audio_parse_handle_first_frame()
836 if (!gst_pad_peer_query_duration (GST_BASE_PARSE_SINK_PAD (mp3parse), in gst_mpeg_audio_parse_handle_first_frame()
846 GST_DEBUG_OBJECT (mp3parse, "Found Xing header marker 0x%x", xing_id); in gst_mpeg_audio_parse_handle_first_frame()
863 GST_DEBUG_OBJECT (mp3parse, in gst_mpeg_audio_parse_handle_first_frame()
868 GST_DEBUG_OBJECT (mp3parse, "Reading Xing header"); in gst_mpeg_audio_parse_handle_first_frame()
869 mp3parse->xing_flags = xing_flags; in gst_mpeg_audio_parse_handle_first_frame()
872 mp3parse->xing_frames = GST_READ_UINT32_BE (data); in gst_mpeg_audio_parse_handle_first_frame()
873 if (mp3parse->xing_frames == 0) { in gst_mpeg_audio_parse_handle_first_frame()
874 GST_WARNING_OBJECT (mp3parse, in gst_mpeg_audio_parse_handle_first_frame()
876 mp3parse->xing_flags &= ~XING_FRAMES_FLAG; in gst_mpeg_audio_parse_handle_first_frame()
878 mp3parse->xing_total_time = gst_util_uint64_scale (GST_SECOND, in gst_mpeg_audio_parse_handle_first_frame()
879 (guint64) (mp3parse->xing_frames) * (mp3parse->spf), in gst_mpeg_audio_parse_handle_first_frame()
880 mp3parse->rate); in gst_mpeg_audio_parse_handle_first_frame()
885 mp3parse->xing_frames = 0; in gst_mpeg_audio_parse_handle_first_frame()
886 mp3parse->xing_total_time = 0; in gst_mpeg_audio_parse_handle_first_frame()
890 mp3parse->xing_bytes = GST_READ_UINT32_BE (data); in gst_mpeg_audio_parse_handle_first_frame()
891 if (mp3parse->xing_bytes == 0) { in gst_mpeg_audio_parse_handle_first_frame()
892 GST_WARNING_OBJECT (mp3parse, "Invalid number of bytes in Xing header"); in gst_mpeg_audio_parse_handle_first_frame()
893 mp3parse->xing_flags &= ~XING_BYTES_FLAG; in gst_mpeg_audio_parse_handle_first_frame()
897 mp3parse->xing_bytes = 0; in gst_mpeg_audio_parse_handle_first_frame()
902 if ((total_time = mp3parse->xing_total_time) && in gst_mpeg_audio_parse_handle_first_frame()
903 (total_bytes = mp3parse->xing_bytes)) { in gst_mpeg_audio_parse_handle_first_frame()
904 mp3parse->xing_bitrate = gst_util_uint64_scale (total_bytes, in gst_mpeg_audio_parse_handle_first_frame()
906 mp3parse->xing_bitrate += 500; in gst_mpeg_audio_parse_handle_first_frame()
907 mp3parse->xing_bitrate -= mp3parse->xing_bitrate % 1000; in gst_mpeg_audio_parse_handle_first_frame()
912 guchar *table = mp3parse->xing_seek_table; in gst_mpeg_audio_parse_handle_first_frame()
917 GST_DEBUG_OBJECT (mp3parse, in gst_mpeg_audio_parse_handle_first_frame()
924 GST_WARNING_OBJECT (mp3parse, "Skipping broken Xing TOC"); in gst_mpeg_audio_parse_handle_first_frame()
925 mp3parse->xing_flags &= ~XING_TOC_FLAG; in gst_mpeg_audio_parse_handle_first_frame()
928 mp3parse->xing_seek_table[i] = old = new; in gst_mpeg_audio_parse_handle_first_frame()
937 mp3parse->xing_seek_table_inverse[i] = percent * 100; in gst_mpeg_audio_parse_handle_first_frame()
945 mp3parse->xing_seek_table_inverse[i] = (guint16) (fx * 100); in gst_mpeg_audio_parse_handle_first_frame()
953 mp3parse->xing_seek_table_inverse[i] = (guint16) (fx * 100); in gst_mpeg_audio_parse_handle_first_frame()
959 memset (mp3parse->xing_seek_table, 0, sizeof (mp3parse->xing_seek_table)); in gst_mpeg_audio_parse_handle_first_frame()
960 memset (mp3parse->xing_seek_table_inverse, 0, in gst_mpeg_audio_parse_handle_first_frame()
961 sizeof (mp3parse->xing_seek_table_inverse)); in gst_mpeg_audio_parse_handle_first_frame()
965 mp3parse->xing_vbr_scale = GST_READ_UINT32_BE (data); in gst_mpeg_audio_parse_handle_first_frame()
968 mp3parse->xing_vbr_scale = 0; in gst_mpeg_audio_parse_handle_first_frame()
970 GST_DEBUG_OBJECT (mp3parse, "Xing header reported %u frames, time %" in gst_mpeg_audio_parse_handle_first_frame()
971 GST_TIME_FORMAT ", %u bytes, vbr scale %u", mp3parse->xing_frames, in gst_mpeg_audio_parse_handle_first_frame()
972 GST_TIME_ARGS (mp3parse->xing_total_time), mp3parse->xing_bytes, in gst_mpeg_audio_parse_handle_first_frame()
973 mp3parse->xing_vbr_scale); in gst_mpeg_audio_parse_handle_first_frame()
976 if (upstream_total_bytes && mp3parse->xing_bytes && in gst_mpeg_audio_parse_handle_first_frame()
977 mp3parse->xing_bytes * 0.8 > upstream_total_bytes) { in gst_mpeg_audio_parse_handle_first_frame()
978 GST_WARNING_OBJECT (mp3parse, "File appears to have been truncated; " in gst_mpeg_audio_parse_handle_first_frame()
980 mp3parse->xing_flags &= ~XING_BYTES_FLAG; in gst_mpeg_audio_parse_handle_first_frame()
981 mp3parse->xing_flags &= ~XING_FRAMES_FLAG; in gst_mpeg_audio_parse_handle_first_frame()
993 GST_DEBUG_OBJECT (mp3parse, "Found LAME tag revision %d created by '%s'", in gst_mpeg_audio_parse_handle_first_frame()
1004 mp3parse->encoder_delay = encoder_delay; in gst_mpeg_audio_parse_handle_first_frame()
1005 mp3parse->encoder_padding = encoder_padding; in gst_mpeg_audio_parse_handle_first_frame()
1007 GST_DEBUG_OBJECT (mp3parse, "Encoder delay %u, encoder padding %u", in gst_mpeg_audio_parse_handle_first_frame()
1015 GST_DEBUG_OBJECT (mp3parse, "Found VBRI header marker 0x%x", vbri_id); in gst_mpeg_audio_parse_handle_first_frame()
1018 GST_DEBUG_OBJECT (mp3parse, in gst_mpeg_audio_parse_handle_first_frame()
1023 GST_DEBUG_OBJECT (mp3parse, "Reading VBRI header"); in gst_mpeg_audio_parse_handle_first_frame()
1029 GST_WARNING_OBJECT (mp3parse, in gst_mpeg_audio_parse_handle_first_frame()
1043 mp3parse->vbri_bytes = total_bytes; in gst_mpeg_audio_parse_handle_first_frame()
1048 mp3parse->vbri_frames = total_frames; in gst_mpeg_audio_parse_handle_first_frame()
1049 mp3parse->vbri_total_time = gst_util_uint64_scale (GST_SECOND, in gst_mpeg_audio_parse_handle_first_frame()
1050 (guint64) (mp3parse->vbri_frames) * (mp3parse->spf), mp3parse->rate); in gst_mpeg_audio_parse_handle_first_frame()
1056 if ((total_time = mp3parse->vbri_total_time) && in gst_mpeg_audio_parse_handle_first_frame()
1057 (total_bytes = mp3parse->vbri_bytes)) { in gst_mpeg_audio_parse_handle_first_frame()
1058 mp3parse->vbri_bitrate = gst_util_uint64_scale (total_bytes, in gst_mpeg_audio_parse_handle_first_frame()
1060 mp3parse->vbri_bitrate += 500; in gst_mpeg_audio_parse_handle_first_frame()
1061 mp3parse->vbri_bitrate -= mp3parse->vbri_bitrate % 1000; in gst_mpeg_audio_parse_handle_first_frame()
1071 mp3parse->vbri_seek_points = nseek_points; in gst_mpeg_audio_parse_handle_first_frame()
1082 GST_WARNING_OBJECT (mp3parse, "Unsupported VBRI seek table"); in gst_mpeg_audio_parse_handle_first_frame()
1087 GST_WARNING_OBJECT (mp3parse, in gst_mpeg_audio_parse_handle_first_frame()
1095 GST_WARNING_OBJECT (mp3parse, in gst_mpeg_audio_parse_handle_first_frame()
1104 mp3parse->vbri_seek_table = g_new (guint32, nseek_points); in gst_mpeg_audio_parse_handle_first_frame()
1107 mp3parse->vbri_seek_table[i] = GST_READ_UINT32_BE (data) * scale; in gst_mpeg_audio_parse_handle_first_frame()
1111 mp3parse->vbri_seek_table[i] = GST_READ_UINT24_BE (data) * scale; in gst_mpeg_audio_parse_handle_first_frame()
1115 mp3parse->vbri_seek_table[i] = GST_READ_UINT16_BE (data) * scale; in gst_mpeg_audio_parse_handle_first_frame()
1119 mp3parse->vbri_seek_table[i] = GST_READ_UINT8 (data) * scale; in gst_mpeg_audio_parse_handle_first_frame()
1125 GST_DEBUG_OBJECT (mp3parse, "VBRI header reported %u frames, time %" in gst_mpeg_audio_parse_handle_first_frame()
1126 GST_TIME_FORMAT ", bytes %u", mp3parse->vbri_frames, in gst_mpeg_audio_parse_handle_first_frame()
1127 GST_TIME_ARGS (mp3parse->vbri_total_time), mp3parse->vbri_bytes); in gst_mpeg_audio_parse_handle_first_frame()
1130 if (upstream_total_bytes && mp3parse->vbri_bytes && in gst_mpeg_audio_parse_handle_first_frame()
1131 mp3parse->vbri_bytes * 0.8 > upstream_total_bytes) { in gst_mpeg_audio_parse_handle_first_frame()
1132 GST_WARNING_OBJECT (mp3parse, "File appears to have been truncated; " in gst_mpeg_audio_parse_handle_first_frame()
1134 mp3parse->vbri_valid = FALSE; in gst_mpeg_audio_parse_handle_first_frame()
1136 mp3parse->vbri_valid = TRUE; in gst_mpeg_audio_parse_handle_first_frame()
1139 GST_DEBUG_OBJECT (mp3parse, in gst_mpeg_audio_parse_handle_first_frame()
1144 if (mp3parse->xing_flags & XING_FRAMES_FLAG) { in gst_mpeg_audio_parse_handle_first_frame()
1145 gst_base_parse_set_duration (GST_BASE_PARSE (mp3parse), GST_FORMAT_TIME, in gst_mpeg_audio_parse_handle_first_frame()
1146 mp3parse->xing_total_time, 0); in gst_mpeg_audio_parse_handle_first_frame()
1148 if (mp3parse->vbri_total_time != 0 && mp3parse->vbri_valid) { in gst_mpeg_audio_parse_handle_first_frame()
1149 gst_base_parse_set_duration (GST_BASE_PARSE (mp3parse), GST_FORMAT_TIME, in gst_mpeg_audio_parse_handle_first_frame()
1150 mp3parse->vbri_total_time, 0); in gst_mpeg_audio_parse_handle_first_frame()
1157 if ((mp3parse->xing_flags & XING_TOC_FLAG) && mp3parse->xing_bytes && in gst_mpeg_audio_parse_handle_first_frame()
1158 mp3parse->xing_total_time) in gst_mpeg_audio_parse_handle_first_frame()
1161 if (mp3parse->vbri_seek_table && mp3parse->vbri_bytes && in gst_mpeg_audio_parse_handle_first_frame()
1162 mp3parse->vbri_total_time) in gst_mpeg_audio_parse_handle_first_frame()
1166 if (mp3parse->xing_bitrate) in gst_mpeg_audio_parse_handle_first_frame()
1167 bitrate = mp3parse->xing_bitrate; in gst_mpeg_audio_parse_handle_first_frame()
1168 else if (mp3parse->vbri_bitrate) in gst_mpeg_audio_parse_handle_first_frame()
1169 bitrate = mp3parse->vbri_bitrate; in gst_mpeg_audio_parse_handle_first_frame()
1173 gst_base_parse_set_average_bitrate (GST_BASE_PARSE (mp3parse), bitrate); in gst_mpeg_audio_parse_handle_first_frame()
1180 gst_mpeg_audio_parse_time_to_bytepos (GstMpegAudioParse * mp3parse, in gst_mpeg_audio_parse_time_to_bytepos() argument
1187 if ((mp3parse->xing_flags & XING_TOC_FLAG) && in gst_mpeg_audio_parse_time_to_bytepos()
1188 (total_bytes = mp3parse->xing_bytes) && in gst_mpeg_audio_parse_time_to_bytepos()
1189 (total_time = mp3parse->xing_total_time)) { in gst_mpeg_audio_parse_time_to_bytepos()
1196 fa = mp3parse->xing_seek_table[index]; in gst_mpeg_audio_parse_time_to_bytepos()
1198 fb = mp3parse->xing_seek_table[index + 1]; in gst_mpeg_audio_parse_time_to_bytepos()
1209 if (mp3parse->vbri_seek_table && (total_bytes = mp3parse->vbri_bytes) && in gst_mpeg_audio_parse_time_to_bytepos()
1210 (total_time = mp3parse->vbri_total_time)) { in gst_mpeg_audio_parse_time_to_bytepos()
1214 i = gst_util_uint64_scale (ts, mp3parse->vbri_seek_points - 1, total_time); in gst_mpeg_audio_parse_time_to_bytepos()
1215 i = CLAMP (i, 0, mp3parse->vbri_seek_points - 1); in gst_mpeg_audio_parse_time_to_bytepos()
1218 mp3parse->vbri_seek_points)); in gst_mpeg_audio_parse_time_to_bytepos()
1221 fa += mp3parse->vbri_seek_table[j]; in gst_mpeg_audio_parse_time_to_bytepos()
1223 if (i + 1 < mp3parse->vbri_seek_points) { in gst_mpeg_audio_parse_time_to_bytepos()
1225 mp3parse->vbri_seek_points)); in gst_mpeg_audio_parse_time_to_bytepos()
1226 fb = fa + mp3parse->vbri_seek_table[i + 1]; in gst_mpeg_audio_parse_time_to_bytepos()
1239 if (mp3parse->bitrate_is_constant && mp3parse->hdr_bitrate) { in gst_mpeg_audio_parse_time_to_bytepos()
1240 *bytepos = gst_util_uint64_scale (ts, mp3parse->hdr_bitrate, in gst_mpeg_audio_parse_time_to_bytepos()
1249 gst_mpeg_audio_parse_bytepos_to_time (GstMpegAudioParse * mp3parse, in gst_mpeg_audio_parse_bytepos_to_time() argument
1256 if ((mp3parse->xing_flags & XING_TOC_FLAG) && in gst_mpeg_audio_parse_bytepos_to_time()
1257 (total_bytes = mp3parse->xing_bytes) && in gst_mpeg_audio_parse_bytepos_to_time()
1258 (total_time = mp3parse->xing_total_time)) { in gst_mpeg_audio_parse_bytepos_to_time()
1265 fa = mp3parse->xing_seek_table_inverse[index]; in gst_mpeg_audio_parse_bytepos_to_time()
1267 fb = mp3parse->xing_seek_table_inverse[index + 1]; in gst_mpeg_audio_parse_bytepos_to_time()
1278 if (mp3parse->vbri_seek_table && in gst_mpeg_audio_parse_bytepos_to_time()
1279 (total_bytes = mp3parse->vbri_bytes) && in gst_mpeg_audio_parse_bytepos_to_time()
1280 (total_time = mp3parse->vbri_total_time)) { in gst_mpeg_audio_parse_bytepos_to_time()
1286 sum += mp3parse->vbri_seek_table[i]; in gst_mpeg_audio_parse_bytepos_to_time()
1288 } while (i + 1 < mp3parse->vbri_seek_points in gst_mpeg_audio_parse_bytepos_to_time()
1289 && sum + mp3parse->vbri_seek_table[i] < bytepos); in gst_mpeg_audio_parse_bytepos_to_time()
1294 mp3parse->vbri_seek_points)); in gst_mpeg_audio_parse_bytepos_to_time()
1296 if (i + 1 < mp3parse->vbri_seek_points) { in gst_mpeg_audio_parse_bytepos_to_time()
1297 b = a + mp3parse->vbri_seek_table[i + 1]; in gst_mpeg_audio_parse_bytepos_to_time()
1299 mp3parse->vbri_seek_points)); in gst_mpeg_audio_parse_bytepos_to_time()
1312 if (mp3parse->bitrate_is_constant && mp3parse->hdr_bitrate) { in gst_mpeg_audio_parse_bytepos_to_time()
1314 mp3parse->hdr_bitrate); in gst_mpeg_audio_parse_bytepos_to_time()
1325 GstMpegAudioParse *mp3parse = GST_MPEG_AUDIO_PARSE (parse); in gst_mpeg_audio_parse_convert() local
1330 gst_mpeg_audio_parse_time_to_bytepos (mp3parse, src_value, dest_value); in gst_mpeg_audio_parse_convert()
1332 res = gst_mpeg_audio_parse_bytepos_to_time (mp3parse, src_value, in gst_mpeg_audio_parse_convert()
1347 GstMpegAudioParse *mp3parse = GST_MPEG_AUDIO_PARSE (parse); in gst_mpeg_audio_parse_pre_push_frame() local
1352 if (mp3parse->last_posted_crc != mp3parse->last_crc) { in gst_mpeg_audio_parse_pre_push_frame()
1358 mp3parse->last_posted_crc = mp3parse->last_crc; in gst_mpeg_audio_parse_pre_push_frame()
1359 if (mp3parse->last_posted_crc == CRC_PROTECTED) { in gst_mpeg_audio_parse_pre_push_frame()
1368 if (mp3parse->last_posted_channel_mode != mp3parse->last_mode) { in gst_mpeg_audio_parse_pre_push_frame()
1372 mp3parse->last_posted_channel_mode = mp3parse->last_mode; in gst_mpeg_audio_parse_pre_push_frame()
1375 gst_mpeg_audio_channel_mode_get_nick (mp3parse->last_mode), NULL); in gst_mpeg_audio_parse_pre_push_frame()
1380 if (taglist != NULL || !mp3parse->sent_codec_tag) { in gst_mpeg_audio_parse_pre_push_frame()
1403 if (mp3parse->hdr_bitrate > 0 && mp3parse->xing_bitrate == 0 && in gst_mpeg_audio_parse_pre_push_frame()
1404 mp3parse->vbri_bitrate == 0) { in gst_mpeg_audio_parse_pre_push_frame()
1408 GST_TAG_NOMINAL_BITRATE, mp3parse->hdr_bitrate, NULL); in gst_mpeg_audio_parse_pre_push_frame()
1412 mp3parse->sent_codec_tag = TRUE; in gst_mpeg_audio_parse_pre_push_frame()