summaryrefslogtreecommitdiffstats
path: root/gst/id3demux/gstid3demux.c
Commit message (Collapse)AuthorAgeFilesLines
* gst/id3demux/gstid3demux.c: Fix handling of -1 values for start and stop ↵Jan Schmidt2007-03-121-3/+14
| | | | | | | | | values when seeking, and SEEK_CUR+SEEK_END. Original commit message from CVS: * gst/id3demux/gstid3demux.c: (gst_id3demux_srcpad_event): Fix handling of -1 values for start and stop values when seeking, and SEEK_CUR+SEEK_END.
* gst/id3demux/gstid3demux.c: Don't leak caps: make gst_id3demux_add_srcpad() ↵Tim-Philipp Müller2007-03-061-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | not take ownership of the caps passed to ... Original commit message from CVS: * gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad), (gst_id3demux_sink_activate): Don't leak caps: make gst_id3demux_add_srcpad() not take ownership of the caps passed to it (previouslly one code path assumes it takes ownership while another one assumes it doesn't). * configure.ac: * tests/files/Makefile.am: * tests/files/id3-407349-1.tag: * tests/files/id3-407349-2.tag: Add directory where data for unit tests can be stored. * tests/Makefile.am: * tests/check/Makefile.am: * tests/check/elements/.cvsignore: * tests/check/elements/id3demux.c: (pad_added_cb), (error_cb), (read_tags_from_file), (run_check_for_file), (check_date_1977_06_23), (GST_START_TEST), (id3demux_suite): Add unit test for id3demux, and in particular for bug #407349. Only testing pull-mode for now; push mode doesn't work yet because the test files are smaller than ID3_TYPE_FIND_MIN_SIZE.
* gst/: Set correct caps on outgoing pulled buffers, or things blow up after ↵Tim-Philipp Müller2007-01-111-0/+2
| | | | | | | | | | recent core changes. Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_read_range): * gst/id3demux/gstid3demux.c: (gst_id3demux_read_range): Set correct caps on outgoing pulled buffers, or things blow up after recent core changes.
* gst/: In streaming mode, if the first buffer we get doesn't have an offset, ↵Tim-Philipp Müller2006-12-121-1/+14
| | | | | | | | | | | | | | fix it up to be 0, otherwise trimming won... Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain_parse_tag), (gst_tag_demux_chain): * gst/id3demux/gstid3demux.c: (gst_id3demux_chain): In streaming mode, if the first buffer we get doesn't have an offset, fix it up to be 0, otherwise trimming won't work later on and we'll be typefinding application/x-id3, which may result in decodebin plugging an endless number of id3demux elements as a consequence. Fixes #385031.
* gst/: Activate pad before adding it to the already-running element.Tim-Philipp Müller2006-10-111-0/+1
| | | | | | | | | | Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_add_srcpad): * gst/icydemux/gsticydemux.c: (gst_icydemux_add_srcpad): * gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad): Activate pad before adding it to the already-running element. * tests/check/elements/icydemux.c: (icydemux_found_pad): Activate newly-created pad too.
* gst/: Don't interpret a first buffer with an offset of NONE as 'from the ↵Tim-Philipp Müller2006-09-141-2/+4
| | | | | | | | | | | middle of the stream', but only a first buff... Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain_parse_tag): * gst/id3demux/gstid3demux.c: (gst_id3demux_chain): Don't interpret a first buffer with an offset of NONE as 'from the middle of the stream', but only a first buffer that has a valid buffer offset that's non-zero (see #345449).
* gst/id3demux/: On second thought, it might be wiser and more efficient not ↵Tim-Philipp Müller2006-07-231-0/+5
| | | | | | | | | | | | to do tag registration from a streaming th... Original commit message from CVS: * gst/id3demux/gstid3demux.c: (plugin_init): * gst/id3demux/id3tags.c: (id3demux_add_id3v2_frame_blob_to_taglist): * gst/id3demux/id3tags.h: On second thought, it might be wiser and more efficient not to do tag registration from a streaming thread.
* gst/: Don't return FLOW_UNEXPECTED when a buffer is before the start of the ↵Tim-Philipp Müller2006-07-051-6/+22
| | | | | | | | | | | | | | | stream (which might happen with large ID3... Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_trim_buffer), (gst_tag_demux_read_range): * gst/id3demux/gstid3demux.c: (gst_id3demux_trim_buffer), (gst_id3demux_read_range): Don't return FLOW_UNEXPECTED when a buffer is before the start of the stream (which might happen with large ID3v2 tags if the tag reading was done pullrange based and we then switched to push mode later on). Fixes regression introduced by commit from June 29th.
* gst/: Return FLOW_UNEXPECTED when at the end of the file, notTim-Philipp Müller2006-07-031-2/+2
| | | | | | | | | | Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain): * gst/id3demux/gstid3demux.c: (gst_id3demux_chain): Return FLOW_UNEXPECTED when at the end of the file, not FLOW_ERROR. Fixes 'internal stream error' errors that would sometimes occur in totem when scrubbing to the end of an ID3v1 tagged mp3 file.
* gst/id3demux/gstid3demux.c: Make sure we don't return GST_FLOW_OK with a ↵Tim-Philipp Müller2006-06-291-10/+16
| | | | | | | | | | | | | | NULL buffer in certain cases where a read be... Original commit message from CVS: * gst/id3demux/gstid3demux.c: (gst_id3demux_trim_buffer), (gst_id3demux_read_range): Make sure we don't return GST_FLOW_OK with a NULL buffer in certain cases where a read beyond the end of the file is requested. Fixes #345930. * gst/apetag/gsttagdemux.c: (gst_tag_demux_trim_buffer), (gst_tag_demux_read_range): Fix same issue here as well.
* gst/: Use gst_pad_query_peer_duration() utility function here.Tim-Philipp Müller2006-06-111-21/+5
| | | | | | | Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size): * gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size): Use gst_pad_query_peer_duration() utility function here.
* gst/id3demux/gstid3demux.c: Let core insert default error message for ↵Tim-Philipp Müller2006-05-021-4/+2
| | | | | | | | | | | TYPE_NOT_FOUND errors, it's just as good as our... Original commit message from CVS: * gst/id3demux/gstid3demux.c: (gst_id3demux_chain), (gst_id3demux_sink_activate): Let core insert default error message for TYPE_NOT_FOUND errors, it's just as good as our own and has the added bonus of being translated.
* gst/: Post an error message when we get an EOS event and were not able to ↵Tim-Philipp Müller2006-05-021-1/+29
| | | | | | | | | | | | | | | | | find out the type of stream. Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_init), (gst_tag_demux_sink_event): * gst/id3demux/gstid3demux.c: (gst_id3demux_init), (gst_id3demux_sink_event): Post an error message when we get an EOS event and were not able to find out the type of stream. * tests/check/elements/id3v2mux.c: (fill_mp3_buffer), (got_buffer), (test_taglib_id3mux_with_tags): Decrease num-buffers to 16 per iteration again, otherwise the many memcpy()s and reallocations in the test will hammer slow CPUs completely and make the test timeout.
* Define GstElementDetails as const and also static (when defined as global)Stefan Kost2006-04-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/aalib/gstaasink.c: * ext/annodex/gstcmmldec.c: * ext/annodex/gstcmmlenc.c: * ext/cairo/gsttextoverlay.c: * ext/cairo/gsttimeoverlay.c: * ext/cdio/gstcdiocddasrc.c: * ext/dv/gstdvdec.c: * ext/dv/gstdvdemux.c: * ext/esd/esdmon.c: * ext/esd/esdsink.c: * ext/flac/gstflacenc.c: * ext/flac/gstflactag.c: * ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init): * ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init): * ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init): * ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init): * ext/gdk_pixbuf/pixbufscale.c: * ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init): * ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init): * ext/jpeg/gstjpegdec.c: * ext/jpeg/gstjpegenc.c: * ext/jpeg/gstsmokedec.c: * ext/jpeg/gstsmokeenc.c: * ext/libcaca/gstcacasink.c: * ext/libmng/gstmngdec.c: * ext/libmng/gstmngenc.c: * ext/libpng/gstpngdec.c: * ext/libpng/gstpngenc.c: * ext/mikmod/gstmikmod.c: * ext/raw1394/gstdv1394src.c: * ext/shout2/gstshout2.c: (gst_shout2send_init): * ext/shout2/gstshout2.h: * ext/speex/gstspeexdec.c: * ext/speex/gstspeexenc.c: * gst/alpha/gstalpha.c: * gst/alpha/gstalphacolor.c: * gst/apetag/gstapedemux.c: * gst/auparse/gstauparse.c: * gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_base_init): * gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_base_init): * gst/avi/gstavidemux.c: (gst_avi_demux_base_init): * gst/avi/gstavimux.c: (gst_avimux_base_init): * gst/cutter/gstcutter.c: * gst/debug/breakmydata.c: * gst/debug/efence.c: * gst/debug/gstnavigationtest.c: * gst/debug/gstnavseek.c: * gst/debug/negotiation.c: * gst/debug/progressreport.c: * gst/debug/testplugin.c: * gst/effectv/gstaging.c: * gst/effectv/gstdice.c: * gst/effectv/gstedge.c: * gst/effectv/gstquark.c: * gst/effectv/gstrev.c: * gst/effectv/gstshagadelic.c: * gst/effectv/gstvertigo.c: * gst/effectv/gstwarp.c: * gst/flx/gstflxdec.c: * gst/goom/gstgoom.c: * gst/icydemux/gsticydemux.c: * gst/id3demux/gstid3demux.c: * gst/interleave/deinterleave.c: * gst/interleave/interleave.c: * gst/law/alaw-decode.c: (gst_alawdec_base_init): * gst/law/alaw-encode.c: (gst_alawenc_base_init): * gst/law/mulaw-decode.c: (gst_mulawdec_base_init): * gst/law/mulaw-encode.c: (gst_mulawenc_base_init): * gst/level/gstlevel.c: * gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init): * gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init): * gst/median/gstmedian.c: * gst/monoscope/gstmonoscope.c: * gst/multipart/multipartdemux.c: * gst/multipart/multipartmux.c: * gst/oldcore/gstaggregator.c: * gst/oldcore/gstfdsink.c: * gst/oldcore/gstmd5sink.c: * gst/oldcore/gstmultifilesrc.c: * gst/oldcore/gstpipefilter.c: * gst/oldcore/gstshaper.c: * gst/oldcore/gststatistics.c: * gst/rtp/gstasteriskh263.c: * gst/rtp/gstrtpL16depay.c: * gst/rtp/gstrtpL16pay.c: * gst/rtp/gstrtpamrdepay.c: * gst/rtp/gstrtpamrpay.c: * gst/rtp/gstrtpdepay.c: * gst/rtp/gstrtpgsmpay.c: * gst/rtp/gstrtph263pay.c: * gst/rtp/gstrtph263pdepay.c: * gst/rtp/gstrtph263ppay.c: * gst/rtp/gstrtpilbcdepay.c: * gst/rtp/gstrtpmp4gpay.c: * gst/rtp/gstrtpmp4vdepay.c: * gst/rtp/gstrtpmp4vpay.c: * gst/rtp/gstrtpmpadepay.c: * gst/rtp/gstrtpmpapay.c: * gst/rtp/gstrtppcmadepay.c: * gst/rtp/gstrtppcmapay.c: * gst/rtp/gstrtppcmudepay.c: * gst/rtp/gstrtppcmupay.c: * gst/rtp/gstrtpspeexdepay.c: * gst/rtp/gstrtpspeexpay.c: * gst/rtsp/gstrtpdec.c: * gst/rtsp/gstrtspsrc.c: * gst/smpte/gstsmpte.c: * gst/udp/gstdynudpsink.c: * gst/udp/gstmultiudpsink.c: * gst/udp/gstudpsink.c: * gst/udp/gstudpsrc.c: * gst/videobox/gstvideobox.c: * gst/videofilter/gstgamma.c: (gst_gamma_base_init): * gst/videofilter/gstvideobalance.c: * gst/videofilter/gstvideoflip.c: * gst/videofilter/gstvideotemplate.c: (gst_videotemplate_base_init): * gst/videomixer/videomixer.c: * gst/wavparse/gstwavparse.c: (gst_wavparse_base_init), (gst_wavparse_class_init), (gst_wavparse_dispose), (gst_wavparse_reset), (gst_wavparse_init), (gst_wavparse_perform_seek), (gst_wavparse_peek_chunk_info), (gst_wavparse_peek_chunk), (gst_wavparse_stream_headers), (gst_wavparse_parse_stream_init), (gst_wavparse_send_event), (gst_wavparse_add_src_pad), (gst_wavparse_stream_data), (gst_wavparse_chain), (gst_wavparse_srcpad_event), (gst_wavparse_sink_activate), (gst_wavparse_sink_activate_pull), (gst_wavparse_change_state): * gst/wavparse/gstwavparse.h: * sys/oss/gstossmixerelement.c: * sys/oss/gstosssink.c: * sys/oss/gstosssrc.c: * sys/osxaudio/gstosxaudioelement.c: * sys/osxaudio/gstosxaudiosink.c: * sys/osxaudio/gstosxaudiosrc.c: * sys/sunaudio/gstsunaudiomixer.c: * sys/sunaudio/gstsunaudiosink.c: Define GstElementDetails as const and also static (when defined as global)
* Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)Stefan Kost2006-04-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/aalib/gstaasink.c: (gst_aasink_class_init): * ext/esd/esdsink.c: (gst_esdsink_class_init): * ext/flac/gstflactag.c: (gst_flac_tag_class_init): * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_class_init): * ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init): * ext/jpeg/gstsmokedec.c: (gst_smokedec_class_init): * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init): * ext/libcaca/gstcacasink.c: (gst_cacasink_class_init): * ext/libmng/gstmngdec.c: (gst_mngdec_class_init): * ext/libmng/gstmngenc.c: (gst_mngenc_class_init): * ext/libpng/gstpngdec.c: (gst_pngdec_class_init): * ext/libpng/gstpngenc.c: (gst_pngenc_class_init): * ext/mikmod/gstmikmod.c: (gst_mikmod_class_init): * ext/shout2/gstshout2.c: (gst_shout2send_class_init): * ext/speex/gstspeexenc.c: (gst_speexenc_class_init): * gst/alpha/gstalpha.c: (gst_alpha_class_init): * gst/avi/gstavimux.c: (gst_avimux_class_init): * gst/debug/efence.c: (gst_efence_class_init): * gst/debug/negotiation.c: (gst_negotiation_class_init): * gst/flx/gstflxdec.c: (gst_flxdec_class_init): * gst/goom/gstgoom.c: (gst_goom_class_init): * gst/id3demux/gstid3demux.c: (gst_id3demux_class_init): * gst/interleave/deinterleave.c: (deinterleave_class_init): * gst/interleave/interleave.c: (interleave_class_init): * gst/law/alaw-decode.c: (gst_alawdec_class_init): * gst/law/alaw-encode.c: (gst_alawenc_class_init): * gst/law/mulaw-encode.c: (gst_mulawenc_class_init): * gst/median/gstmedian.c: (gst_median_class_init): * gst/monoscope/gstmonoscope.c: (gst_monoscope_class_init): * gst/multipart/multipartmux.c: (gst_multipart_mux_class_init): * gst/rtp/gstasteriskh263.c: (gst_asteriskh263_class_init): * gst/rtp/gstrtpL16depay.c: (gst_rtp_L16depay_class_init): * gst/rtp/gstrtpL16pay.c: (gst_rtpL16pay_class_init): * gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_class_init): * gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_class_init): * gst/rtp/gstrtpdepay.c: (gst_rtp_depay_class_init): * gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_class_init): * gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_class_init): * gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_class_init): * gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_class_init): * gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init): * gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_class_init): * gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_class_init): * gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_class_init): * gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_class_init): * gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_class_init): * gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_class_init): * gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_class_init): * gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_class_init): * gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_class_init): * gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_class_init): * gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_class_init): * gst/rtsp/gstrtpdec.c: (gst_rtpdec_class_init): * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init): * gst/smpte/gstsmpte.c: (gst_smpte_class_init): * gst/udp/gstdynudpsink.c: (gst_dynudpsink_class_init): * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_class_init): * gst/udp/gstudpsink.c: (gst_udpsink_class_init): * gst/videomixer/videomixer.c: (gst_videomixer_class_init): * gst/wavenc/gstwavenc.c: (gst_wavenc_class_init): * sys/oss/gstossdmabuffer.c: (gst_ossdmabuffer_class_init): * sys/oss/gstosssink.c: (gst_oss_sink_class_init): * sys/osxaudio/gstosxaudioelement.c: (gst_osxaudioelement_class_init): * sys/osxaudio/gstosxaudiosink.c: (gst_osxaudiosink_class_init): * sys/osxaudio/gstosxaudiosrc.c: (gst_osxaudiosrc_class_init): * sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_class_init): Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
* gst/id3demux/gstid3demux.c: Create source pad without leaking.Tim-Philipp Müller2006-03-261-3/+1
| | | | | | Original commit message from CVS: * gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad): Create source pad without leaking.
* gst/: Don't attempt typefinding on too-short buffers that have been ↵Jan Schmidt2006-03-221-1/+5
| | | | | | | | | | | | completely trimmed away. Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain): * gst/id3demux/gstid3demux.c: (gst_id3demux_chain): Don't attempt typefinding on too-short buffers that have been completely trimmed away. * gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag): Improve the debug output
* gst/: gcc 4.1 unreferenced pointer fixes.Edward Hervey2006-03-211-2/+5
| | | | | | | | | | Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_reset): * gst/id3demux/gstid3demux.c: (gst_id3demux_reset): * gst/wavparse/gstwavparse.c: (gst_wavparse_create_sourcepad), (gst_wavparse_stream_headers), (gst_wavparse_send_event), (gst_wavparse_change_state): gcc 4.1 unreferenced pointer fixes.
* gst/apetag/gsttagdemux.c: Ensure that we set caps on the buffers we pass.Jan Schmidt2006-03-151-4/+9
| | | | | | | | | | | | | Original commit message from CVS: * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain): Ensure that we set caps on the buffers we pass. * gst/id3demux/gstid3demux.c: (gst_id3demux_chain), (gst_id3demux_sink_activate): Ensure that we set caps on the buffers we pass. Use STREAM, TYPE_NOT_FOUND as the error class when typefinding fails.
* configure.ac: Bump -base requirement to 0.10.5 for ↵Tim-Philipp Müller2006-03-141-0/+3
| | | | | | | | | | | | | | gst_tag_from_id3_user_tag(), used by id3demux. Original commit message from CVS: * configure.ac: Bump -base requirement to 0.10.5 for gst_tag_from_id3_user_tag(), used by id3demux. * gst/id3demux/gstid3demux.c: (plugin_init): * gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame), (parse_user_text_identification_frame), (parse_unique_file_identifier): Add support for UFID and TXXX frames and extract musicbrainz tags.
* gst/id3demux/: Use new typefind helper functions here as well, and do ↵Tim-Philipp Müller2006-03-041-93/+19
| | | | | | | | | | | typefinding in pull-mode if upstream supports t... Original commit message from CVS: * gst/id3demux/Makefile.am: * gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad), (gst_id3demux_chain), (gst_id3demux_sink_activate): Use new typefind helper functions here as well, and do typefinding in pull-mode if upstream supports that.
* gst/id3demux/gstid3demux.c: Jon Trowbridge2006-02-111-0/+4
| | | | | | | | Original commit message from CVS: * gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size), (gst_id3demux_do_typefind): Fix a couple of mem leaks. (Patch by Jonathan Matthew <jonathan at kaolin dot wh9 dot net>)
* gst/id3demux/: Someone should kick my butt. Remove ID3v1 tags from the end ↵Jan Schmidt2006-01-301-8/+24
| | | | | | | | | | | | | | | | | of the file. Original commit message from CVS: * gst/id3demux/gstid3demux.c: (gst_id3demux_chain), (gst_id3demux_read_id3v1), (gst_id3demux_sink_activate), (gst_id3demux_send_tag_event): * gst/id3demux/id3tags.c: (id3demux_read_id3v1_tag): Someone should kick my butt. Remove ID3v1 tags from the end of the file. Improve error messages. Send the TAG message as soon as we complete typefinding, instead of waiting until we send the first buffer. Downstream tag event is still sent before the first buffer.
* gst/id3demux/gstid3demux.c: Don't put function calls in g_return_if_fail() ↵Tim-Philipp Müller2006-01-251-3/+5
| | | | | | | | | | statements, or they'll be replaced with NO... Original commit message from CVS: * gst/id3demux/gstid3demux.c: (gst_id3demux_remove_srcpad): Don't put function calls in g_return_if_fail() statements, or they'll be replaced with NOOPs if someone compiles with G_DISABLE_CHECKS defined.
* gst/id3demux/gstid3demux.c: Add gst_element_no_more_pads() for proper ↵Edward Hervey2006-01-061-1/+3
| | | | | | | | | | | | | | decodebin behaviour. Original commit message from CVS: * gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad): Add gst_element_no_more_pads() for proper decodebin behaviour. * gst/id3demux/id3v2frames.c: (parse_comment_frame), (parse_text_identification_frame), (parse_split_strings): Failure to decode some tags is not a GST_ERROR() but a GST_WARNING() When iterating over a chunk of text, check that we haven't gone too far.
* Add documentation for id3demux.Jan Schmidt2005-12-211-12/+32
| | | | | | | | | | | | | | | | | | Original commit message from CVS: 2005-12-21 Jan Schmidt <thaytan@mad.scientist.com> * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.args: * gst/id3demux/gstid3demux.c: (gst_id3demux_get_type), (gst_id3demux_base_init), (gst_id3demux_class_init), (gst_id3demux_chain): * gst/id3demux/gstid3demux.h: Add documentation for id3demux. Don't fail if the first buffer is not at offset 0, just attempt to typefind and do pass through Rename the gst_type function from gst_gst_id3demux..
* configure.ac: Check for optional dependency on zlib for id3demuxJan Schmidt2005-12-181-0/+1086
Original commit message from CVS: * configure.ac: Check for optional dependency on zlib for id3demux * gst/id3demux/Makefile.am: * gst/id3demux/gstid3demux.c: (gst_gst_id3demux_get_type), (gst_id3demux_base_init), (gst_id3demux_class_init), (gst_id3demux_reset), (gst_id3demux_init), (gst_id3demux_dispose), (gst_id3demux_add_srcpad), (gst_id3demux_remove_srcpad), (gst_id3demux_trim_buffer), (gst_id3demux_chain), (gst_id3demux_set_property), (gst_id3demux_get_property), (id3demux_get_upstream_size), (gst_id3demux_srcpad_event), (gst_id3demux_read_id3v1), (gst_id3demux_read_id3v2), (gst_id3demux_sink_activate), (gst_id3demux_src_activate_pull), (gst_id3demux_src_checkgetrange), (gst_id3demux_read_range), (gst_id3demux_src_getrange), (gst_id3demux_change_state), (gst_id3demux_pad_query), (gst_id3demux_get_query_types), (simple_find_peek), (simple_find_suggest), (gst_id3demux_do_typefind), (gst_id3demux_send_tag_event), (plugin_init): * gst/id3demux/gstid3demux.h: * gst/id3demux/id3tags.c: (read_synch_uint), (id3demux_read_id3v1_tag), (id3demux_read_id3v2_tag), (id3demux_id3v2_frame_hdr_size), (convert_fid_to_v240), (id3demux_id3v2_frames_to_tag_list): * gst/id3demux/id3tags.h: * gst/id3demux/id3v2.4.0-frames.txt: * gst/id3demux/id3v2.4.0-structure.txt: * gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame), (parse_comment_frame), (parse_text_identification_frame), (id3v2_tag_to_taglist), (parse_split_strings): All new LGPL id3 demuxer. Can use zlib for compressed frames, otherwise it discards them. Works on my test files. * gst/wavparse/gstwavparse.c: (gst_wavparse_loop): Don't send EOS to a non-existing srcpad The debug category can be static