Commit graph

69 commits

Author SHA1 Message Date
Jan Schmidt
3a636c561f gst/apetag/gsttagdemux.c: Ensure that we set caps on the buffers we pass.
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.
2006-03-15 16:21:38 +00:00
Tim-Philipp Müller
6fe8d34129 configure.ac: Bump -base requirement to 0.10.5 for 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.
2006-03-14 17:56:02 +00:00
Tim-Philipp Müller
5a7a0b0824 gst/id3demux/: Use new typefind helper functions here as well, and do 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.
2006-03-04 20:11:35 +00:00
Jan Schmidt
c64021f87d gst/id3demux/: Handle 0 data size in otherwise valid frames.
Original commit message from CVS:
* gst/id3demux/id3tags.c: (id3demux_id3v2_frames_to_tag_list):
* gst/id3demux/id3v2frames.c: (id3v2_genre_fields_to_taglist):
Handle 0 data size in otherwise valid frames.
Handle numeric strings in 2.4.0 even when not in parentheses
2006-02-18 20:48:09 +00:00
Jan Schmidt
cfafeaf4da gst/id3demux/id3tags.c: ID3 2.3.0 used synch-safe integers for the tag size, but not for the frame size. (Fixes #331368)
Original commit message from CVS:
* gst/id3demux/id3tags.c: (id3demux_id3v2_frames_to_tag_list):
ID3 2.3.0 used synch-safe integers for the tag size, but not for the
frame size. (Fixes #331368)
2006-02-16 10:58:18 +00:00
Jan Schmidt
8d38cd443f gst/id3demux/id3v2frames.c: Add more validation to ensure that a char encoding conversion produced a valid UTF-8 string.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (parse_insert_string_field),
(parse_split_strings):
Add more validation to ensure that a char encoding conversion
produced a valid UTF-8 string.
2006-02-13 12:00:51 +00:00
Jon Trowbridge
a3e95ebfc9 gst/id3demux/gstid3demux.c:
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>)
2006-02-11 13:35:13 +00:00
Jan Schmidt
4836bfbcf7 gst/id3demux/id3v2frames.c: Adjust for data length indicators when parsing (Fixes #329810)
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_split_strings):
Adjust for data length indicators when parsing (Fixes #329810)
Fix stupid bug parsing UTF-8 tag text.
Output tag strings with multiple fields as multiple tags, so the
app gets all the data.
2006-02-04 13:30:12 +00:00
Jan Schmidt
1d6e1c999a gst/id3demux/id3v2frames.c: Never output a tag with a null contents string.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (parse_text_identification_frame),
(id3v2_tag_to_taglist), (id3v2_genre_string_to_taglist),
(id3v2_genre_fields_to_taglist):
Never output a tag with a null contents string.
2006-02-03 13:06:24 +00:00
Jan Schmidt
1e661e8ff3 gst/id3demux/: Someone should kick my butt. Remove ID3v1 tags from the end 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.
2006-01-30 23:13:05 +00:00
Tim-Philipp Müller
916d083e99 gst/id3demux/gstid3demux.c: Don't put function calls in g_return_if_fail() 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.
2006-01-25 22:05:28 +00:00
Jan Schmidt
73c1153f52 gst/id3demux/id3v2frames.c: Never trust ANY information encoded in a media file, especially when it's giving you size...
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
Never trust ANY information encoded in a media file, especially
when it's giving you sizes. (Fixes #328452)
2006-01-25 18:23:05 +00:00
Jan Schmidt
7ca387e542 gst/id3demux/id3v2frames.c: Remove errant break statement, and fix compilation with older GCC.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
Remove errant break statement, and fix compilation with
older GCC.
2006-01-23 14:32:47 +00:00
Jan Schmidt
2ecee9a43d gst/id3demux/: Rewrite parsing of text tags to handle multiple NULL terminated strings. Parse numeric genre strings a...
Original commit message from CVS:
* gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
* gst/id3demux/id3tags.h:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_comment_frame), (parse_text_identification_frame),
(id3v2_tag_to_taglist), (id3v2_are_digits),
(id3v2_genre_string_to_taglist), (id3v2_genre_fields_to_taglist),
(parse_split_strings), (free_tag_strings):
Rewrite parsing of text tags to handle multiple NULL terminated
strings. Parse numeric genre strings and ID3v2 type
"(3)(6)Alternative" style genre strings.
Parse dates that are only YYYY or YYYY-mm format.
2006-01-23 09:22:17 +00:00
Sergey Scobich
1f4f628a5d gst/id3demux/id3v2frames.c: Fix compilation of id3demux when zlib is not present.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
Fix compilation of id3demux when zlib is not present.
(Fixes #326602; patch by: Sergey Scobich)
2006-01-15 20:21:48 +00:00
Edward Hervey
c6b9d19c31 gst/id3demux/gstid3demux.c: Add gst_element_no_more_pads() for proper 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.
2006-01-06 11:46:53 +00:00
Jan Schmidt
041a4a0d89 gst/id3demux/id3tags.c: If a broken tag has 0 bytes payload, at least still skip the 10 byte header
Original commit message from CVS:
* gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
If a broken tag has 0 bytes payload, at least still skip
the 10 byte header
2005-12-28 18:55:32 +00:00
Jan Schmidt
79e762425b Add documentation for id3demux.
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..
2005-12-21 15:24:59 +00:00
Jan Schmidt
a05fc62783 configure.ac: Check for optional dependency on zlib for id3demux
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
2005-12-18 15:14:44 +00:00