Tim-Philipp Müller [Wed, 14 Nov 2007 21:39:47 +0000 (21:39 +0000)]
tag: id3v2: We don't want the same string multiple times in a tag list for the same tag ever, for any tag, not jus...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c:
* gst-libs/gst/tag/id3v2.h:
* gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
We don't want the same string multiple times in a tag list for the
same tag ever, for any tag, not just for GST_TAG_GENRE, so make sure
this doesn't happen and remove special-case code for GST_TAG_GENRE.
Jason Kivlighn [Thu, 11 Oct 2007 17:55:29 +0000 (17:55 +0000)]
tag: id3v2: Extract license/copyright URIs from ID3v2 WCOP frames (Fixes #447000).
Original commit message from CVS:
Based on patch by: Jason Kivlighn <jkivlighn gmail com>
* gst-libs/gst/tag/id3v2frames.c:
Extract license/copyright URIs from ID3v2 WCOP frames
(Fixes #447000).
* tests/check/elements/id3demux.c:
* tests/files/Makefile.am:
* tests/files/id3-447000-wcop.tag:
Add simple unit test.
Tim-Philipp Müller [Sat, 6 Oct 2007 16:13:14 +0000 (16:13 +0000)]
tag: id3v2: Port ID3 tag demuxer over to the new GstTagDemux in -base (now would be a good time to test re-importi...
Original commit message from CVS:
* gst-libs/gst/tag/gstid3demux.c:
* gst-libs/gst/tag/gstid3demux.h:
* gst-libs/gst/tag/id3v2.c:
* gst-libs/gst/tag/id3v2.h:
* gst-libs/gst/tag/id3v2frames.c:
Port ID3 tag demuxer over to the new GstTagDemux in -base
(now would be a good time to test re-importing your music
collection).
Tim-Philipp Müller [Mon, 12 Mar 2007 13:28:29 +0000 (13:28 +0000)]
tag: id3v2: Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is the image format a vari...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is
the image format a variable-length NUL-terminated string; in
versions before that the image format is a fixed-length string of
3 characters (see #348644 for a sample tag).
Also make supplied mime type lower-case and fix up 'jpg' to 'jpeg'.
Tim-Philipp Müller [Tue, 6 Mar 2007 18:16:49 +0000 (18:16 +0000)]
tag: id3v2: Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise the four-digit number will be interp...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
* gst-libs/gst/tag/id3v2.h:
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_obsolete_tdat_frame):
Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise
the four-digit number will be interpreted as a year, whereas it is
month and day in DDMM format. Instead, parse TDAT frames and fix up
the date in the GST_TAG_DATE tag later if we also extracted a year.
Fixes #407349.
René Stadler [Sun, 19 Nov 2006 13:41:53 +0000 (13:41 +0000)]
tag: id3v2: Make sure that g_free always gets called on the same pointer that was returned by g_mallo...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
Make sure that g_free always gets called on the same pointer that was
returned by g_malloc. Fixes #376594.
Do not leak memory if decompressed size is wrong.
Remove unneeded check of return value of g_malloc.
Patch by: René Stadler <mail@renestadler.de>
Tim-Philipp Müller [Wed, 1 Nov 2006 13:59:49 +0000 (13:59 +0000)]
tag: id3v2: We require a -base more recent than 0.10.9, so it's safe to use
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
We require a -base more recent than 0.10.9, so it's safe to use
GST_TYPE_TAG_IMAGE_TYPE unconditionally now.
* ext/dv/gstdvdec.c: (gst_dvdec_sink_event):
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_sink_event):
Use _newsegment_full() now that we depend on a recent enough core.
* gst/wavparse/gstwavparse.c:
Remove cruft that we don't need any longer now that we depend on
a recent enough -base.
Tim-Philipp Müller [Thu, 5 Oct 2006 16:37:33 +0000 (16:37 +0000)]
tag: id3v2: Printf format fixes.
Original commit message from CVS:
* ext/cairo/gsttimeoverlay.c:
(gst_cairo_time_overlay_update_font_height):
* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_transform_caps):
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_parse_image_data):
* ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
* ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
* ext/libpng/gstpngdec.c: (user_endrow_callback):
* gst/auparse/gstauparse.c: (gst_au_parse_parse_header):
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
(gst_avi_demux_stream_data):
* gst/cutter/gstcutter.c: (gst_cutter_chain):
* gst/debug/efence.c: (gst_efence_buffer_alloc),
(gst_fenced_buffer_copy):
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
(gst_rtspsrc_handle_message):
* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
* sys/ximage/ximageutil.c: (ximageutil_xcontext_get):
Printf format fixes.
Jan Schmidt [Tue, 22 Aug 2006 13:53:34 +0000 (13:53 +0000)]
tag: id3v2: If strings in text fields are marked ISO8859-1, but contain valid UTF-8 already, then han...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (parse_text_identification_frame),
(parse_insert_string_field):
If strings in text fields are marked ISO8859-1, but contain
valid UTF-8 already, then handle them as UTF-8 and ignore
the encoding. (#351794)
Tim-Philipp Müller [Wed, 16 Aug 2006 13:01:32 +0000 (13:01 +0000)]
configure.ac: Require CVS of GStreamer core and -base (for
Original commit message from CVS:
* configure.ac:
Require CVS of GStreamer core and -base (for
GST_TAG_EXTENDED_COMMENT and gst_tag_parse_extended_comment()).
* ext/taglib/gstid3v2mux.cc:
Write extended comment tags properly (#348762).
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_comment_frame):
Extract COMM frames into extended comments, which makes it
easier to properly retain the description bit of the tag
and maintain this information when re-tagging (#348762).
Tim-Philipp Müller [Tue, 25 Jul 2006 16:47:04 +0000 (16:47 +0000)]
tag: id3v2: Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as well, and add the version to...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c:
(id3demux_add_id3v2_frame_blob_to_taglist):
Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as
well, and add the version to the blob's buffer caps, since that
information will be needed for deserialisation later on (#348644).
Tim-Philipp Müller [Sun, 23 Jul 2006 11:33:54 +0000 (11:33 +0000)]
tag: id3v2: On second thought, it might be wiser and more efficient not to do tag registration from a streaming th...
Original commit message from CVS:
* gst-libs/gst/tag/gstid3demux.c: (plugin_init):
* gst-libs/gst/tag/id3v2.c:
(id3demux_add_id3v2_frame_blob_to_taglist):
* gst-libs/gst/tag/id3v2.h:
On second thought, it might be wiser and more efficient
not to do tag registration from a streaming thread.
Tim-Philipp Müller [Sun, 23 Jul 2006 10:56:27 +0000 (10:56 +0000)]
tag: id3v2: Put ID3v2 frames we can't parse as binary blobs into private tags, so that they are not lost ...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c:
(id3demux_add_id3v2_frame_blob_to_taglist),
(id3demux_id3v2_frames_to_tag_list):
Put ID3v2 frames we can't parse as binary blobs into private
tags, so that they are not lost when retagging, at least once
id3v2mux has been taught to re-inject those frames again.
See bug #334375.
Wim Taymans [Fri, 21 Jul 2006 10:57:00 +0000 (10:57 +0000)]
tag: id3v2: Don't use \n in debug lines
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
(gst_avi_demux_process_next_entry):
Fix some leaks.
* gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
Don't use \n in debug lines.
Tim-Philipp Müller [Thu, 22 Jun 2006 12:17:13 +0000 (12:17 +0000)]
tag: id3v2: Set image type from APIC frame as "image-type" field of GST_TAG_IMAGE buffer caps (#344605).
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
Set image type from APIC frame as "image-type" field
of GST_TAG_IMAGE buffer caps (#344605).
Tim-Philipp Müller [Sun, 11 Jun 2006 19:31:10 +0000 (19:31 +0000)]
tag: id3v2: Extract images from ID3v2 tags (APIC frames). Fixes #339704.
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
(scan_encoded_string), (parse_picture_frame):
Extract images from ID3v2 tags (APIC frames). Fixes #339704.
* configure.ac:
Require core >= 0.10.8 (for GST_TAG_IMAGE and
GST_TAG_PPEVIEW_IMAGE used in the patch above).
Tim-Philipp Müller [Sun, 28 May 2006 10:05:47 +0000 (10:05 +0000)]
tag: id3v2: A track/volume number or count of 0 does not make sense, just ignore it along with negati...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
A track/volume number or count of 0 does not make sense,
just ignore it along with negative numbers (a tag might
only contain a track count without a track number).
Jan Schmidt [Fri, 19 May 2006 14:05:53 +0000 (14:05 +0000)]
tag: id3v2: Don't output any tag when we encounter a negative track number - the tag type is uint, so...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
Don't output any tag when we encounter a negative track number - the
tag type is uint, so we end up outputting huge positive numbers
instead. (Fixes: #342029)
Jan Schmidt [Tue, 16 May 2006 14:07:29 +0000 (14:07 +0000)]
tag: id3v2: Rework string parsing to always walk over BOM markers in UTF16 strings, using the endianness indicated by the innermost one ...
Original commit message from CVS:
* gst/autodetect/gstautoaudiosink.c:
(gst_auto_audio_sink_find_best):
* gst/autodetect/gstautovideosink.c:
(gst_auto_video_sink_find_best):
Make the name of the child element be based on the name of the
parent, so that debug output is more useful.
* gst-libs/gst/tag/id3v2frames.c: (find_utf16_bom),
(parse_insert_string_field), (parse_split_strings):
Rework string parsing to always walk over BOM markers in UTF16
strings, using the endianness indicated by the innermost one,
then trying the opposite endianness if that fails to convert
to valid UTF-8. Fixes #341774
Tim-Philipp Müller [Fri, 12 May 2006 08:21:37 +0000 (08:21 +0000)]
tag: id3v2: Some more debug info. No need to check whether the string returned by g_convert() is real...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (parse_insert_string_field):
Some more debug info. No need to check whether the string
returned by g_convert() is really UTF-8 - either it is or
we get NULL returned.
Jan Schmidt [Wed, 10 May 2006 13:51:01 +0000 (13:51 +0000)]
tag: id3v2: Fix parsing of numeric genre strings some more, by ensuring that we only try and parse st...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3v2_genre_fields_to_taglist):
Fix parsing of numeric genre strings some more, by ensuring that
we only try and parse strings that a) Start with '(' and b) Consist
only of digits.
Also, when finding an escaping '((' sequence, bust it back to '(' by
swallowing the first parenthesis
Tim-Philipp Müller [Fri, 28 Apr 2006 11:37:22 +0000 (11:37 +0000)]
tag: id3v2: Recognise and skip any byte order marker (BOM) in
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (has_utf16_bom),
(parse_split_strings):
Recognise and skip any byte order marker (BOM) in
UTF-16 strings.
Alex Lancaster [Mon, 17 Apr 2006 10:01:51 +0000 (10:01 +0000)]
tag: id3v2: Recognise TCO (Genre) tags in ID3v2.2
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c:
Recognise TCO (Genre) tags in ID3v2.2. Patch by Alex Lancaster
(Fixes #338713)
Sébastien Moutte [Thu, 30 Mar 2006 23:37:16 +0000 (23:37 +0000)]
tag: id3v2: use of GST_DEBUG instead of DEBUG(a...) for WIN32
Original commit message from CVS:
* ext\jpeg\smokecodec.c:
use of GST_DEBUG instead of DEBUG(a...) for WIN32
* ext\speex\gstspeexenc.c: (gst_speexenc_set_header_on_caps):
move first instruction after all variables declarations
* gst\alpha\gstalpha.c:
* gst\effectv\gstshagadelic.c:
* gst\smpte\paint.c:
* gst\videofilter\gstvideobalance.c:
define M_PI if it's not defined (it's not defined on WIN32)
* gst\cutter\gstcutter.c: (gst_cutter_chain):
* gst\id3demux\id3v2frames.c: (parse_relative_volume_adjustment_two):
* gst\level\gstlevel.c: (gst_level_set_property), (gst_level_transform_ip):
* gst\matroska\matroska-demux.c: (gst_matroska_demux_parse_info),
(gst_matroska_demux_video_caps):
* gst\matroska\matroska-mux.c: (gst_matroska_mux_start), (gst_matroska_mux_finish):
* gst\wavparse\gstwavparse.c: (gst_wavparse_stream_data):
use gst_guint64_to_gdouble for conversions
* gst\goom\filters.c: (setPixelRGB_):
fix a debug which was using undefined variable
* gst\level\gstlevel.c: (gst_level_set_caps), (gst_level_transform_ip):
* gst\matroska\ebml-read.c: (gst_ebml_read_sint):
replace LL suffix with L suffix (LL isn't supported by MSVC6.0)
* win32/vs6:
add vs6 projects files for most of plugins-good
Jan Schmidt [Wed, 22 Mar 2006 13:00:34 +0000 (13:00 +0000)]
tag: id3v2: Don't attempt typefinding on too-short buffers that have been completely trimmed away.
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
* gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_chain):
Don't attempt typefinding on too-short buffers that have been
completely trimmed away.
* gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
Improve the debug output
Tim-Philipp Müller [Thu, 16 Mar 2006 16:06:22 +0000 (16:06 +0000)]
tag: id3v2: We only care about gain and peak data for the master volume.
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c:
(parse_relative_volume_adjustment_two):
We only care about gain and peak data for the master volume.
Tim-Philipp Müller [Thu, 16 Mar 2006 13:22:28 +0000 (13:22 +0000)]
tag: id3v2: Read replay gain tags
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_id_string), (parse_unique_file_identifier),
(parse_relative_volume_adjustment_two), (id3v2_tag_to_taglist):
Read replay gain tags (#323721).
Tim-Philipp Müller [Tue, 14 Mar 2006 17:56:02 +0000 (17:56 +0000)]
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-libs/gst/tag/gstid3demux.c: (plugin_init):
* gst-libs/gst/tag/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.
Jan Schmidt [Sat, 18 Feb 2006 20:48:09 +0000 (20:48 +0000)]
tag: id3v2: Handle 0 data size in otherwise valid frames.
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
* gst-libs/gst/tag/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
Jan Schmidt [Thu, 16 Feb 2006 10:58:18 +0000 (10:58 +0000)]
tag: id3v2: 3 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-libs/gst/tag/id3v2.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)
Jan Schmidt [Mon, 13 Feb 2006 12:00:51 +0000 (12:00 +0000)]
tag: id3v2: Add more validation to ensure that a char encoding conversion produced a valid UTF-8 string.
Original commit message from CVS:
* gst-libs/gst/tag/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.
Jan Schmidt [Sat, 4 Feb 2006 13:30:12 +0000 (13:30 +0000)]
tag: id3v2: Adjust for data length indicators when parsing (Fixes #329810)
Original commit message from CVS:
* gst-libs/gst/tag/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.
Jan Schmidt [Fri, 3 Feb 2006 13:06:24 +0000 (13:06 +0000)]
tag: id3v2: Never output a tag with a null contents string.
Original commit message from CVS:
* gst-libs/gst/tag/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.
Jan Schmidt [Mon, 30 Jan 2006 23:13:05 +0000 (23:13 +0000)]
tag: id3v2: Someone should kick my butt. Remove ID3v1 tags from the end of the file.
Original commit message from CVS:
* gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_chain),
(gst_id3demux_read_id3v1), (gst_id3demux_sink_activate),
(gst_id3demux_send_tag_event):
* gst-libs/gst/tag/id3v2.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.
Jan Schmidt [Wed, 25 Jan 2006 18:23:05 +0000 (18:23 +0000)]
tag: id3v2: Never trust ANY information encoded in a media file, especially when it's giving you size...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
Never trust ANY information encoded in a media file, especially
when it's giving you sizes. (Fixes #328452)
Jan Schmidt [Mon, 23 Jan 2006 14:32:47 +0000 (14:32 +0000)]
tag: id3v2: Remove errant break statement, and fix compilation with older GCC.
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
Remove errant break statement, and fix compilation with
older GCC.
Jan Schmidt [Mon, 23 Jan 2006 09:22:17 +0000 (09:22 +0000)]
tag: id3v2: Rewrite parsing of text tags to handle multiple NULL terminated strings. Parse numeric genre strings a...
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
* gst-libs/gst/tag/id3v2.h:
* gst-libs/gst/tag/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.
Sergey Scobich [Sun, 15 Jan 2006 20:21:48 +0000 (20:21 +0000)]
tag: id3v2: Fix compilation of id3demux when zlib is not present.
Original commit message from CVS:
* gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
Fix compilation of id3demux when zlib is not present.
(Fixes #326602; patch by: Sergey Scobich)
Edward Hervey [Fri, 6 Jan 2006 11:46:53 +0000 (11:46 +0000)]
tag: id3v2: Add gst_element_no_more_pads() for proper decodebin behaviour.
Original commit message from CVS:
* gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_add_srcpad):
Add gst_element_no_more_pads() for proper decodebin behaviour.
* gst-libs/gst/tag/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.
Jan Schmidt [Wed, 28 Dec 2005 18:55:32 +0000 (18:55 +0000)]
tag: id3v2: If a broken tag has 0 bytes payload, at least still skip the 10 byte header
Original commit message from CVS:
* gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
If a broken tag has 0 bytes payload, at least still skip
the 10 byte header
Jan Schmidt [Sun, 18 Dec 2005 15:14:44 +0000 (15:14 +0000)]
tag: id3v2: all new LGPL id3 demuxer, can use zlib for compressed frames
Original commit message from CVS:
* configure.ac:
Check for optional dependency on zlib for id3demux
* gst-libs/gst/tag/Makefile.am:
* gst-libs/gst/tag/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-libs/gst/tag/gstid3demux.h:
* gst-libs/gst/tag/id3v2.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-libs/gst/tag/id3v2.h:
* gst-libs/gst/tag/id3v2.4.0-frames.txt:
* gst-libs/gst/tag/id3v2.4.0-structure.txt:
* gst-libs/gst/tag/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
Vincent Penquerc'h [Thu, 11 Aug 2011 17:50:08 +0000 (18:50 +0100)]
audioresample: fix quality setting being ignored by the resampler state
https://bugzilla.gnome.org/show_bug.cgi?id=636562
Vincent Penquerc'h [Thu, 11 Aug 2011 14:54:15 +0000 (15:54 +0100)]
audioresample: use SSE/SSE2 when possible
Compile in the code on i386 and x86_64, and use ORC to determine
when the runtime platform can run the code.
https://bugzilla.gnome.org/show_bug.cgi?id=636562
Vincent Penquerc'h [Thu, 11 Aug 2011 18:23:42 +0000 (19:23 +0100)]
audioresample: fix SSE2 building with double precision
The full double implementation was missing.
https://bugzilla.gnome.org/show_bug.cgi?id=636562
Thiago Santos [Thu, 11 Aug 2011 15:12:07 +0000 (12:12 -0300)]
tag: exif: Check for utf8 before trying to convert
If the string is already on utf8, there is no need to
try to convert it, because it is useless and it might garble
the string.
Thiago Santos [Wed, 10 Aug 2011 16:16:13 +0000 (13:16 -0300)]
tests: tag: exif: Add tests for 'non-trivial' chars
Adds two new cases to check that characters are properly
converted to ascii when writen to exif and parsed correctly
back to utf8 when read.
Thiago Santos [Tue, 9 Aug 2011 19:02:28 +0000 (16:02 -0300)]
tag: exif: Exif strings should be ascii
Use g_convert to turn all strings into extended ascii before writing
to the exif buffer and converting back from ascii to utf8 when
reading them.
Tim-Philipp Müller [Wed, 10 Aug 2011 14:57:02 +0000 (15:57 +0100)]
win32: update libgsttag.def for new API
Tim-Philipp Müller [Wed, 10 Aug 2011 14:21:41 +0000 (15:21 +0100)]
tag: don't build helper programs that generate/update data by default
No point building these by default. Also, these generated files
should go into the srcdir, not the builddir in this case, since
they're version controlled.
Tim-Philipp Müller [Wed, 10 Aug 2011 14:20:37 +0000 (15:20 +0100)]
tag: fix stray printf in mklicensestables
Don't dump debug output to stdout.
Tim-Philipp Müller [Wed, 10 Aug 2011 14:06:59 +0000 (15:06 +0100)]
tag: fix compilation of new licenses code with GLib versions < 2.28
Add local g_variant_lookup_value() fallback for now when compiling
against older GLib versions.
Tim-Philipp Müller [Wed, 10 Aug 2011 13:57:14 +0000 (14:57 +0100)]
tag: add GType for GstTagLicenseFlags
API: gst_tag_license_flags_get_type()
Tim-Philipp Müller [Wed, 10 Aug 2011 09:49:38 +0000 (10:49 +0100)]
subparse: fix runtime warnings when doing position query
Add missing 'break'.
Tim-Philipp Müller [Fri, 15 Jul 2011 12:19:38 +0000 (13:19 +0100)]
tag: add unit test for new license API
https://bugzilla.gnome.org/show_bug.cgi?id=646868
Tim-Philipp Müller [Fri, 15 Jul 2011 12:14:16 +0000 (13:14 +0100)]
tag: add mklicensestables utility
Add (uninstalled) tool to create licenses-table.dat from liblicense's
RDF files. It's not very pretty and makes loats of assumptions about
the input, but should work. If things change, we can fix it then.
https://bugzilla.gnome.org/show_bug.cgi?id=646868
Tim-Philipp Müller [Fri, 15 Jul 2011 12:07:55 +0000 (13:07 +0100)]
tag: add convenience API to handle creative commons licenses
Based on liblicense's RDF files.
API: GstTagLicenseFlags
API: gst_tag_get_licenses()
API: gst_tag_get_license_flags()
API: gst_tag_get_license_nick()
API: gst_tag_get_license_title()
API: gst_tag_get_license_version()
API: gst_tag_get_license_description()
API: gst_tag_get_license_jurisdiction()
https://bugzilla.gnome.org/show_bug.cgi?id=646868
Vincent Penquerc'h [Mon, 8 Aug 2011 09:00:40 +0000 (10:00 +0100)]
typefind: bump probability if all frames we found are similar
Similar meaning same layer, same bitrate, and same number of channels
This fixes misdetection of (some MP3 files that have zero padding
between the ID3 tag and the MP3 stream) as H.264 video.
https://bugzilla.gnome.org/show_bug.cgi?id=656018
Vincent Penquerc'h [Fri, 5 Aug 2011 15:53:47 +0000 (16:53 +0100)]
gstvorbistag: map ENCODER Vorbis comment to application-name
What GStreamer calls encoder ("encoder used to encode this stream") is
stored in the vendor string in Vorbis/Theora/Kate and possibly others.
The Vorbis comment packet used in those streams uses ENCODER as the name
of the encoding program, which GStreamer calls application-name.
https://bugzilla.gnome.org/show_bug.cgi?id=656034
Vincent Penquerc'h [Fri, 5 Aug 2011 10:32:09 +0000 (11:32 +0100)]
volume: fix sample depth typo
https://bugzilla.gnome.org/show_bug.cgi?id=656022
Sebastian Dröge [Fri, 5 Aug 2011 11:05:43 +0000 (13:05 +0200)]
volume: Update disted ORC files
Thiago Santos [Wed, 3 Aug 2011 17:14:55 +0000 (14:14 -0300)]
encodebin: Set queues to silent=true
As encodebin doesn't connect to the queue signals, it can set
queues to silent mode to make queue not emit them.
Check https://bugzilla.gnome.org/show_bug.cgi?id=621299 for
more info on queue's silent property.
Thiago Santos [Wed, 3 Aug 2011 16:40:19 +0000 (13:40 -0300)]
encodebin: Fix typo on installing properties
queue buffers and bytes properties have ids swapped, fix it.
Jonathan Liu [Wed, 3 Aug 2011 08:18:29 +0000 (10:18 +0200)]
oggstream: Fix crashes with 0-byte vorbis packets
Fixes bug #655574.
Jens Georg [Thu, 28 Jul 2011 12:43:53 +0000 (14:43 +0200)]
pbutils: Add SP levels 4a, 5 and 6
https://bugzilla.gnome.org/show_bug.cgi?id=655503
Philip Jägenstedt [Tue, 26 Jul 2011 14:10:17 +0000 (16:10 +0200)]
theoradec: segfault on 0-byte ogg_packet in _chain_reverse
Tim-Philipp Müller [Fri, 29 Jul 2011 09:23:02 +0000 (10:23 +0100)]
Add new GstTagMux base class
Hook up new tag muxing base class to build system.
https://bugzilla.gnome.org/show_bug.cgi?id=555437
API: GstTagMux
Tim-Philipp Müller [Fri, 29 Jul 2011 09:22:26 +0000 (10:22 +0100)]
docs: add documentation for GstTagMux
Tim-Philipp Müller [Thu, 28 Jul 2011 19:38:37 +0000 (20:38 +0100)]
tagmux: require subclass to install sink pad template
Require the subclass to install both source and sink pad
templates. Also, print some warnings if the subclass doesn't
do that.
https://bugzilla.gnome.org/show_bug.cgi?id=555437
Tim-Philipp Müller [Fri, 15 Jul 2011 19:57:47 +0000 (20:57 +0100)]
tagmux: const-ify GstTagList argument of render vfuncs
Tim-Philipp Müller [Fri, 15 Jul 2011 19:39:20 +0000 (20:39 +0100)]
tagmux: fix up private base class header so it can be made public
Move private bits into a private struct, add some padding.
https://bugzilla.gnome.org/show_bug.cgi?id=555437
Michael Smith [Thu, 28 Jul 2011 22:31:03 +0000 (23:31 +0100)]
tagmux: add support for end tags
Originally "id3tag: Add new id3 tagging plugin, supports v1, v2.3,
and v2.4." from gst-plugins-bad. This is an artificial bridge commit.
Sebastian Dröge [Sun, 6 Jun 2010 16:00:22 +0000 (18:00 +0200)]
ext: Don't use GST_DEBUG_FUNCPTR for GObject vfuncs
Julien Moutte [Tue, 20 Nov 2007 11:41:13 +0000 (11:41 +0000)]
Fix build on Mac OS X 10.5
Original commit message from CVS:
2007-11-20 Julien MOUTTE <julien@moutte.net>
* gst-libs/gst/tag/gsttagmux.c: (gst_tag_lib_mux_render_tag),
(gst_tag_lib_mux_adjust_event_offsets):
* gst/qtdemux/qtdemux.c: (qtdemux_parse_theora_extension):
* sys/osxaudio/Makefile.am:
* sys/osxvideo/cocoawindow.h:
* sys/osxvideo/cocoawindow.m: Fix build on Mac OS X 10.5
Sebastian Dröge [Thu, 13 Sep 2007 15:04:15 +0000 (15:04 +0000)]
Update my mail address.
Original commit message from CVS:
* ext/taglib/gstapev2mux.cc:
* ext/taglib/gstapev2mux.h:
* gst-libs/gst/tag/gsttagmux.c:
* tests/check/elements/apev2mux.c:
Update my mail address.
Sebastian Dröge [Tue, 30 May 2006 14:35:18 +0000 (14:35 +0000)]
Add apev2mux element (#343122).
Original commit message from CVS:
Patch by: Sebastian Dröge <mail at slomosnail de >
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* ext/taglib/Makefile.am:
* ext/taglib/gstapev2mux.cc:
* ext/taglib/gstapev2mux.h:
* ext/taglib/gstid3v2mux.cc:
* gst-libs/gst/tag/gsttagmux.c: (plugin_init):
* gst-libs/gst/tag/gsttagmux.h:
Add apev2mux element (#343122).
* tests/check/Makefile.am:
* tests/check/elements/apev2mux.c:
(test_taglib_apev2mux_create_tags),
(test_taglib_apev2mux_check_tags), (fill_mp3_buffer), (got_buffer),
(demux_pad_added), (test_taglib_apev2mux_check_output_buffer),
(test_taglib_apev2mux_with_tags), (GST_START_TEST),
(apev2mux_suite), (main):
Add unit test for apev2mux element.
James Doc Livingston [Thu, 18 May 2006 12:46:08 +0000 (12:46 +0000)]
gst-libs/gst/tag/gsttagmux.c: Merge event tags and tag setter tags
correctly (#339918). Also, don't leak taglist in case...
Original commit message from CVS:
Patch by: James "Doc" Livingston <doclivingston gmail com>
* gst-libs/gst/tag/gsttagmux.c: (gst_tag_lib_mux_render_tag):
Merge event tags and tag setter tags correctly (#339918). Also,
don't leak taglist in case of an error.
Thomas Vander Stichele [Mon, 1 May 2006 11:46:33 +0000 (11:46 +0000)]
docs/plugins/Makefile.am: also check .cc files for gtk-doc markup
Original commit message from CVS:
* docs/plugins/Makefile.am:
also check .cc files for gtk-doc markup
* configure.ac:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* tests/check/Makefile.am:
* tests/check/elements/id3v2mux.c: (id3v2mux_suite), (main):
* ext/Makefile.am:
* ext/taglib/Makefile.am:
* ext/taglib/gstid3v2mux.h:
* gst-libs/gst/tag/gsttagmux.c:
* gst-libs/gst/tag/gsttagmux.h:
move taglib-based id3v2muxer to -good. Fixes #336110.
Thomas Vander Stichele [Sun, 30 Apr 2006 16:16:59 +0000 (16:16 +0000)]
small cleanups
Original commit message from CVS:
small cleanups
Tim-Philipp Müller [Sat, 29 Apr 2006 18:46:36 +0000 (18:46 +0000)]
ext/taglib/gsttaglib.cc: Post an error message on the bus in the
(extremely unlikely) case of an error.
Original commit message from CVS:
* ext/taglib/gsttaglib.cc:
Post an error message on the bus in the (extremely unlikely)
case of an error.
Tim-Philipp Müller [Sat, 29 Apr 2006 18:18:24 +0000 (18:18 +0000)]
ext/taglib/: Split the actual ID3v2 tag rendering code into its own
subclass.
Original commit message from CVS:
* ext/taglib/Makefile.am:
* ext/taglib/gstid3v2mux.cc:
* ext/taglib/gstid3v2mux.h:
* ext/taglib/gsttaglib.cc:
* ext/taglib/gsttaglib.h:
Split the actual ID3v2 tag rendering code into
its own subclass.
Thomas Vander Stichele [Fri, 28 Apr 2006 15:33:09 +0000 (15:33 +0000)]
pedantic cleanups
Original commit message from CVS:
pedantic cleanups
Thomas Vander Stichele [Sat, 1 Apr 2006 16:50:49 +0000 (16:50 +0000)]
add taglib checks and docs
Original commit message from CVS:
add taglib checks and docs
Tim-Philipp Müller [Sun, 26 Mar 2006 19:56:37 +0000 (19:56 +0000)]
ext/taglib/gsttaglib.*: Fix newsegment event handling a bit. We need
to cache the first newsegment event, because we ...
Original commit message from CVS:
* ext/taglib/gsttaglib.cc:
* ext/taglib/gsttaglib.h:
Fix newsegment event handling a bit. We need to
cache the first newsegment event, because we can't
adjust offsets yet when we get it, as we don't
know the size of the tag yet for sure at that point.
Also do some minor cleaning up here and there and add
some debug statements.
Tim-Philipp Müller [Sat, 25 Mar 2006 21:57:24 +0000 (21:57 +0000)]
ext/taglib/gsttaglib.cc: We do not want to proxy the caps on the
sink pad; our source pad should have application/x-i...
Original commit message from CVS:
* ext/taglib/gsttaglib.cc:
We do not want to proxy the caps on the sink pad; our
source pad should have application/x-id3 caps; also,
don't use already-freed strings in debug messages;
finally, adjust buffer offsets on buffers sent out.
Tim-Philipp Müller [Mon, 20 Mar 2006 08:59:29 +0000 (08:59 +0000)]
ext/taglib/gsttaglib.h: Fix left-over gst_my_filter_get_type.
Original commit message from CVS:
* ext/taglib/gsttaglib.h:
Fix left-over gst_my_filter_get_type.
Tim-Philipp Müller [Mon, 13 Mar 2006 17:22:19 +0000 (17:22 +0000)]
ext/taglib/gsttaglib.cc: Add gtk-doc blurb (unused for the time
being); match registered plugin name to the filename ...
Original commit message from CVS:
* ext/taglib/gsttaglib.cc:
Add gtk-doc blurb (unused for the time being); match registered
plugin name to the filename of the plugin (taglibmux => taglib)
Tim-Philipp Müller [Sun, 12 Mar 2006 15:02:02 +0000 (15:02 +0000)]
ext/taglib/: Add support for writing MusicBrainz IDs.
Original commit message from CVS:
* ext/taglib/Makefile.am:
* ext/taglib/gsttaglib.cc:
* ext/taglib/gsttaglib.h:
Add support for writing MusicBrainz IDs.
Alex Lancaster [Sat, 11 Mar 2006 10:58:08 +0000 (10:58 +0000)]
ext/taglib/gsttaglib.cc: and add support for TCOP (copyright)
Original commit message from CVS:
2006-03-11 Christophe Fergeau <teuf@gnome.org>
Patch by: Alex Lancaster
* ext/taglib/gsttaglib.cc: fix writing of TPOS tags (album number),
and add support for TCOP (copyright)
Christophe Fergeau [Thu, 9 Mar 2006 17:44:17 +0000 (17:44 +0000)]
new id3v2 muxer based on TagLib
Original commit message from CVS:
2006-03-09 Christophe Fergeau <teuf@gnome.org>
reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* configure.ac:
* ext/Makefile.am:
* ext/taglib/Makefile.am:
* ext/taglib/gsttaglib.cc:
* ext/taglib/gsttaglib.h: new id3v2 muxer based on TagLib
Thiago Santos [Thu, 28 Jul 2011 14:21:26 +0000 (11:21 -0300)]
encodebin: rename flags names
Rename flags names from native-audio/-video to
no-audio/video-conversion to be more explicit on what it does
Stefan Sauer [Wed, 20 Jul 2011 16:10:57 +0000 (18:10 +0200)]
baseaudiosink: fix latency calculation for live elements
Max_latency was computed on already adjusted min_latency. Introduce a new
variable for clarity. Spotted by Blaise Gassend.
Fixes #644284
Mark Nauwelaerts [Thu, 28 Jul 2011 09:44:20 +0000 (11:44 +0200)]
baseaudiosink: fix max latency calculation
... to allow infinite max, as also claimed by comment.
Mark Nauwelaerts [Wed, 1 Jun 2011 08:21:39 +0000 (10:21 +0200)]
baseaudiosink: drop samples that are too late
... rather than having all of them rendered at 0 or subsequently aligned,
likely inevitably leading to repeated resyncing.
Stefan Sauer [Tue, 26 Jul 2011 11:51:31 +0000 (13:51 +0200)]
basetime: fix failing test
Always use audiotestsrc as it seems to have been the intention according to the
comment header. The test does not work with live-audiosources.
Stefan Kost [Mon, 25 Jul 2011 17:51:24 +0000 (19:51 +0200)]
tests: rename the test suite to match the binary
This unbreaks determining the name for make elements/playbin2-compressed.check
from the test output.
Stefan Kost [Mon, 25 Jul 2011 17:39:55 +0000 (19:39 +0200)]
adder: rework pending event handling
Use atomic ops on pending flags. Rename the segment_pending to
new_segment_pending. Set new_segment_pending not when we received seek, but
when we received the first upstream new_segment.
Stefan Kost [Mon, 25 Jul 2011 17:11:59 +0000 (19:11 +0200)]
adder: more debug logging for events
Edward Hervey [Tue, 26 Jul 2011 10:33:56 +0000 (12:33 +0200)]
decodebin2: Allow all EOS to go through if we don't have a next group
Only drop them if the current group isn't drained .. AND there is a
next group to switch to.
Should Fix #655268
Edward Hervey [Mon, 25 Jul 2011 16:37:15 +0000 (18:37 +0200)]
playbin2: Avoid resetting playsink when not needed
When we don't have specific {audio|video|text}-sink properties, don't
set them on playsink when reconfiguring.
If we do that, we end up setting the previous configured sink to
GST_STATE_NULL resulting in any potentially pending push being returned
with GST_FLOW_WRONG_STATE which will cause the upstream elements to
silently stop.
https://bugzilla.gnome.org/show_bug.cgi?id=655279
Stefan Sauer [Mon, 25 Jul 2011 10:04:02 +0000 (12:04 +0200)]
textoverlay: improve the example
Mentioned that this is not ment to be used with subtitles and suggest alternatives.