Commit graph

27 commits

Author SHA1 Message Date
Mathieu Duponchelle
caca46e0e6 subparse: convert from pango-markup to utf8 ..
when downstream requires it
2020-03-27 15:27:06 +00:00
Niels De Graef
7a36730fb4 subparse: Use G_DECLARE_FINAL_TYPE 2020-03-16 15:47:58 +00:00
Jan Schmidt
fd2a14144a subparse: WebVTT parsing support
WebVTT is a new subtitle format for HTML5 video. In this first
version of the parser the cue settings are parsed but only stored in
the internal parser state structure. Later on these settings could be
part of the GstBuffer metadata.

https://bugzilla.gnome.org/show_bug.cgi?id=629764
2016-03-25 00:58:42 +11:00
Sebastian Dröge
bc2342e4ad subparse: Add typefinder for LRC subtitles 2013-12-18 15:52:53 +01:00
Arnaud Vrac
4816885ce3 subparse: fix off by one offset calculation
Do not use the buffer start offset when it is invalid, otherwise a
discontinuity is detected on the next buffer, and the subtitle parser
reset and some subtitle lines are not shown.

Also remove unused next_offset field.

https://bugzilla.gnome.org/show_bug.cgi?id=693981
2013-03-22 11:09:11 +00:00
Tim-Philipp Müller
5f59b4f7ee Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Wim Taymans
94dfe80f71 -base: port to new SEGMENT API 2011-05-16 13:48:11 +02:00
Thiago Santos
cdcc28c833 subparse: add qttext support
Adds basic support for qttext subtitles, still lacks markup tags
to make it prettier, but the plain text already works.

Implemented according to:
http://www.apple.com/quicktime/tutorials/texttracks.html
http://www.apple.com/quicktime/tutorials/textdescriptors.html

Fixes #603357
2009-12-01 14:06:27 -03:00
Sebastian Dröge
528be22031 subparse: Make fps a GstFraction typed property and use it properly 2009-11-12 13:20:41 +01:00
Iago Toral
b2c65c9efd subparse: Add property for the video framerate 2009-11-12 13:20:41 +01:00
Iago Toral
f63643bd54 subparse: Add support for DKS subtitle format
Fixes bug #598936.
2009-10-22 10:02:11 +02:00
Tim-Philipp Müller
9ca2bf36de subparse, ogmparse: post tags with GST_TAG_SUBTITLE_CODEC
Make subtitle parsers post a taglist with codec tags, so the application
knows what kind of subtitle a subtitle stream is. Fixes #576552.
2009-06-11 22:32:28 +01:00
Sebastian Dröge
e7b42af896 gst/subparse/: Add support for UTF16/UTF32 subtitles as long as the first bytes of the first buffer contain the BOM. ...
Original commit message from CVS:
* gst/subparse/Makefile.am:
* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
(gst_sub_parse_class_init), (gst_sub_parse_init),
(gst_convert_to_utf8), (detect_encoding), (convert_encoding),
(get_next_line), (gst_sub_parse_data_format_autodetect),
(feed_textbuf), (handle_buffer), (gst_sub_parse_change_state),
(gst_subparse_type_find):
* gst/subparse/gstsubparse.h:
Add support for UTF16/UTF32 subtitles as long as the first bytes of
the first buffer contain the BOM. This also adds support for other
encodings that allow NUL bytes via the encoding property.
Fixes bugs #552237 and #456788.
2008-10-13 08:58:29 +00:00
Sebastian Dröge
60bf63486b Add support for subtitle files with UTF-8 BOM at the beginning by simple stripping it from the first line before pass...
Original commit message from CVS:
* gst/subparse/gstsubparse.c:
(gst_sub_parse_data_format_autodetect), (handle_buffer),
(gst_sub_parse_change_state):
* gst/subparse/gstsubparse.h:
* tests/check/elements/subparse.c: (GST_START_TEST):
Add support for subtitle files with UTF-8 BOM at the beginning
by simple stripping it from the first line before passing it
to any parsing code. Fixes bug #555257 and playback of files
created by Gnome Subtitles.
2008-10-10 17:13:40 +00:00
Tim-Philipp Müller
206f91995b Limit duration to a maximum of five seconds for tmplayer format where we can guess the duration only from the timesta...
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (parser_state_init),
(gst_sub_parse_format_autodetect), (handle_buffer):
* gst/subparse/gstsubparse.h:
* tests/check/elements/subparse.c: (test_tmplayer_style3b):
Limit duration to a maximum of five seconds for tmplayer format where
we can guess the duration only from the timestamp of the next line of
text. We don't want to show a text for eternities just because nothing
else is being said for a while.
2008-05-25 20:51:35 +00:00
Sven Arvidsson
0cffe4be7d gst/subparse/gstsubparse.*: Add support for SubViewer version 1 and 2 subtitles. Fixes #394061.
Original commit message from CVS:
Based on a patch by Sven Arvidsson <sa at whiz dot se>:
* gst/subparse/gstsubparse.c: (parse_subrip),
(subviewer_unescape_newlines), (parse_subviewer),
(gst_sub_parse_data_format_autodetect),
(gst_sub_parse_format_autodetect), (gst_subparse_type_find):
* gst/subparse/gstsubparse.h:
Add support for SubViewer version 1 and 2 subtitles. Fixes #394061.
* tests/check/elements/subparse.c: (GST_START_TEST),
(subparse_suite):
Add a unit test for both SubViewer formats.
2007-06-05 21:36:11 +00:00
Kamil Pawlowski
389eb6f2f8 gst/subparse/: Add support for MPL2 subtitle format (#413799).
Original commit message from CVS:
Patch by: Kamil Pawlowski  <kamilpe gmail com>
* gst/subparse/Makefile.am:
* gst/subparse/gstsubparse.c:
(gst_sub_parse_data_format_autodetect),
(gst_sub_parse_format_autodetect), (gst_sub_parse_sink_event),
(gst_subparse_type_find):
* gst/subparse/gstsubparse.h:
* gst/subparse/mpl2parse.c: (mpl2_parse_line), (parse_mpl2):
* gst/subparse/mpl2parse.h:
Add support for MPL2 subtitle format (#413799).
2007-03-10 11:17:52 +00:00
Tim-Philipp Müller
b9ca5573a9 ext/pango/gsttextoverlay.c: Some more logging. Only accept newsegment events in TIME format and send a WARNING messag...
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_text_event),
(gst_text_overlay_video_event):
Some more logging. Only accept newsegment events in TIME format and
send a WARNING message if they are not in TIME format.
* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
(gst_sub_parse_init), (gst_sub_parse_src_event), (handle_buffer),
(gst_sub_parse_chain), (gst_sub_parse_sink_event):
* gst/subparse/gstsubparse.h:
No need to allocate GstSegment structure dynamically, just put it
into the instance structure; ignore newsegment events in BYTE
format and in particular don't let it overwrite our saved TIME
segment from the last seek.
2007-03-09 16:28:04 +00:00
Tim-Philipp Müller
9052dc4681 gst/subparse/gstsubparse.*: Remove spurious 1000 subtrahend when calculating the timestamp from the frame number and ...
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (parse_mdvdsub):
* gst/subparse/gstsubparse.h:
Remove spurious 1000 subtrahend when calculating the timestamp from
the frame number and the frame rate . Also, use the frames/second
value specified in the first line of the file, if one is specified
there. Should fix #357503.
* tests/check/elements/subparse.c: (do_test),
(test_tmplayer_do_test), (test_microdvd_do_test), (GST_START_TEST),
(subparse_suite):
Add some basic unit tests for the microdvd subtitle format.
2007-01-08 12:30:03 +00:00
Tim-Philipp Müller
1b6b21adab gst/subparse/: Add support for TMPlayer-type subtitles (#362845).
Original commit message from CVS:
* gst/subparse/Makefile.am:
* gst/subparse/gstsubparse.c:
(gst_sub_parse_data_format_autodetect),
(gst_sub_parse_format_autodetect), (handle_buffer),
(gst_sub_parse_chain), (gst_subparse_type_find), (plugin_init):
* gst/subparse/gstsubparse.h:
* gst/subparse/tmplayerparse.c: (tmplayer_parse_line),
(parse_tmplayer):
* gst/subparse/tmplayerparse.h:
Add support for TMPlayer-type subtitles (#362845).
* tests/check/elements/subparse.c: (test_tmplayer_do_test),
(GST_START_TEST), (subparse_suite):
Add some basic unit tests for the above.
2006-10-23 12:06:44 +00:00
Young-Ho Cha
7b7a6d12f5 gst/subparse/gstsubparse.*: Add 'encoding' property (#341681).
Original commit message from CVS:
Patch by: Young-Ho Cha  <ganadist chollian net>
* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
(gst_sub_parse_class_init), (gst_sub_parse_init),
(gst_sub_parse_set_property), (gst_sub_parse_get_property),
(convert_encoding):
* gst/subparse/gstsubparse.h:
Add 'encoding' property (#341681).
* gst/subparse/samiparse.c: (characters_sami):
Output is pango markup, so we need to escape text
between tags (#342143).
2006-05-17 17:49:10 +00:00
Young-Ho Cha
e0cbb1036c gst/subparse/: Add support for SAMI subtitles (#169936).
Original commit message from CVS:
Patch by: Young-Ho Cha  <ganadist at chollian net>
* gst/subparse/Makefile.am:
* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
(parser_state_dispose), (gst_sub_parse_data_format_autodetect),
(gst_sub_parse_format_autodetect), (feed_textbuf),
(gst_subparse_type_find), (plugin_init):
* gst/subparse/gstsubparse.h:
* gst/subparse/samiparse.c:
* gst/subparse/samiparse.h:
Add support for SAMI subtitles (#169936).
2006-05-15 09:14:35 +00:00
Tim-Philipp Müller
2ecb455728 gst/subparse/gstsubparse.*: Text subtitle files may or may not be UTF-8. If it's not, we don't really want to see '?'...
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (convert_encoding),
(gst_sub_parse_change_state):
* gst/subparse/gstsubparse.h:
Text subtitle files may or may not be UTF-8. If it's not, we
don't really want to see '?' characters in place of non-ASCII
characters like accented characters. So let's assume the input
is UTF-8 until we come across text that is clearly not. If it's
not UTF-8, we don't really know what it is, so try the following:
(a) see whether the GST_SUBTITLE_ENCODING environment variable
is set; if not, check (b) if the current locale encoding is
non-UTF-8 and use that if it is, or (c) assume ISO-8859-15 if
the current locale encoding is UTF-8 and the environment variable
was not set to any particular encoding. Not perfect, but better
than nothing (and better than before, I think) (fixes #172848).
2006-03-24 17:57:39 +00:00
Julien Moutte
72c19d4790 docs/libs/tmpl/gstcolorbalance.sgml: Updated.
Original commit message from CVS:
2006-02-05  Julien MOUTTE  <julien@moutte.net>

* docs/libs/tmpl/gstcolorbalance.sgml: Updated.
* ext/pango/gsttextoverlay.c: (gst_text_overlay_init),
(gst_text_overlay_src_event), (gst_text_overlay_collected):
* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
(gst_sub_parse_class_init), (gst_sub_parse_init),
(gst_sub_parse_src_event), (parse_mdvdsub), (parse_subrip),
(parse_mpsub), (parser_state_init), (handle_buffer),
(gst_sub_parse_chain), (gst_sub_parse_sink_event),
(plugin_init):
* gst/subparse/gstsubparse.h: Introduce seeking code.
2006-02-05 16:03:48 +00:00
Thomas Vander Stichele
f39b477379 borgify further clean up docs a little
Original commit message from CVS:
borgify further
clean up docs a little
2005-12-01 01:12:55 +00:00
Andy Wingo
21c3b52296 gst/audiorate/gstaudiorate.c (gst_audiorate_class_init): Pacify
Original commit message from CVS:
2005-05-05  Andy Wingo  <wingo@pobox.com>

* gst/audiorate/gstaudiorate.c (gst_audiorate_class_init): Pacify
GObject.
* configure.ac: Return audiorate and subparse from the ghetto.
Re-enable -Wall -Werror.
* gst/subparse/gstsubparse.c:
* gst/subparse/gstsubparse.h: Port to 0.9. Can operate loop-based
or chain-based. Cleaned up a bit. Not tested.
2005-05-06 03:32:51 +00:00
Ronald S. Bultje
18881b687a OGM text support, Matroska UTF-8 text support, deadlock fixes all over the place, subtitle awareness in decodebin/pla...
Original commit message from CVS:
* configure.ac:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_new):
* ext/ogg/gstogmparse.c: (gst_ogm_text_parse_get_type),
(gst_ogm_text_parse_base_init), (gst_ogm_text_parse_init),
(gst_ogm_parse_get_sink_querytypes), (gst_ogm_parse_sink_convert),
(gst_ogm_parse_sink_query), (gst_ogm_parse_chain),
(gst_ogm_parse_plugin_init):
* ext/pango/gsttextoverlay.c: (gst_textoverlay_linkedpads),
(gst_textoverlay_link), (gst_textoverlay_getcaps),
(gst_textoverlay_event), (gst_textoverlay_video_chain),
(gst_textoverlay_loop), (gst_textoverlay_init), (plugin_init):
* ext/pango/gsttextoverlay.h:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroska_demux_handle_seek_event),
(gst_matroska_demux_sync_streams),
(gst_matroska_demux_parse_blockgroup),
(gst_matroska_demux_subtitle_caps),
(gst_matroska_demux_plugin_init):
* gst/matroska/matroska-ids.h:
* gst/playback/gstdecodebin.c: (close_pad_link):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(gen_preroll_element), (remove_groups), (add_stream),
(new_decoded_pad), (setup_subtitles), (gen_source_element),
(setup_source):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (gen_text_element), (setup_sinks):
* gst/subparse/Makefile.am:
* gst/subparse/gstsubparse.c: (gst_subparse_get_type),
(gst_subparse_base_init), (gst_subparse_class_init),
(gst_subparse_init), (gst_subparse_formats),
(gst_subparse_eventmask), (gst_subparse_event),
(gst_subparse_handle_event), (convert_encoding), (get_next_line),
(parse_mdvdsub), (parse_mdvdsub_init), (parse_subrip),
(parse_subrip_deinit), (parse_subrip_init), (parse_mpsub),
(parse_mpsub_deinit), (parse_mpsub_init),
(gst_subparse_buffer_format_autodetect),
(gst_subparse_format_autodetect), (gst_subparse_loop),
(gst_subparse_change_state), (gst_subparse_type_find),
(plugin_init):
* gst/subparse/gstsubparse.h:
* gst/typefind/gsttypefindfunctions.c: (ogmtext_type_find),
(plugin_init):
Add subtitle support, .sub parser (supports SRT and MPsub),
OGM text support, Matroska UTF-8 text support, deadlock fixes
all over the place, subtitle awareness in decodebin/playbin
and some fixes to textoverlay to handle subtitles in a stream
correctly. Fixes #100931.
2005-01-08 18:22:41 +00:00