Commit graph

12 commits

Author SHA1 Message Date
Branko Subasic
11b0a0effc matroskademux: Avoid sending EOS when in paused state
Changed the ebml reader's gst_ebml_peek_id_length() function so
that it returns the actual reason for why the peek failed, instead
of (almost) always returning GST_FLOW_UNEXPECTED. This prevents
the pulling task from sending EOS when doing a flushing seek.
2011-09-16 15:18:48 +02:00
Mark Nauwelaerts
085e333283 matroskademux: use bytereader based GstEbmlRead as a helper
... rather than basing on it by inheritance.
Also use more common code for push and pull mode.

Fixes #619198.
Fixes #611117.
2010-06-01 15:52:12 +02:00
Mark Nauwelaerts
900ff7247e matroskademux: support push based mode
Fixes #598610.
2009-12-16 12:46:40 +01:00
Sebastian Dröge
8012622e1b gst/matroska/: Make sure that every Tags element is only parsed once and it's containing tags are only posted once.
Original commit message from CVS:
* gst/matroska/ebml-read.c:
* gst/matroska/ebml-read.h:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroska_demux_parse_metadata):
* gst/matroska/matroska-demux.h:
Make sure that every Tags element is only parsed once and it's
containing tags are only posted once.
2008-06-15 14:08:41 +00:00
Wim Taymans
1e61eb7e5f gst/matroska/: Handle return values from pull_range in a more granular way to properly shut down on seeks.
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_read_peek_bytes),
(gst_ebml_read_pull_bytes), (gst_ebml_read_element_id),
(gst_ebml_read_element_length), (gst_ebml_peek_id),
(gst_ebml_read_skip), (gst_ebml_read_buffer),
(gst_ebml_read_bytes), (gst_ebml_read_uint), (gst_ebml_read_sint),
(gst_ebml_read_float), (gst_ebml_read_ascii), (gst_ebml_read_utf8),
(gst_ebml_read_date), (gst_ebml_read_master),
(gst_ebml_read_binary), (gst_ebml_read_header):
* gst/matroska/ebml-read.h:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_combine_flows), (gst_matroska_demux_reset),
(gst_matroska_demux_read_track_encodings),
(gst_matroska_demux_add_stream),
(gst_matroska_demux_handle_src_query),
(gst_matroska_demux_handle_seek_event),
(gst_matroska_demux_init_stream),
(gst_matroska_demux_parse_tracks),
(gst_matroska_demux_parse_index_cuetrack),
(gst_matroska_demux_parse_index_pointentry),
(gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info),
(gst_matroska_demux_parse_metadata_id_simple_tag),
(gst_matroska_demux_parse_metadata_id_tag),
(gst_matroska_demux_parse_metadata),
(gst_matroska_demux_sync_streams),
(gst_matroska_demux_push_hdr_buf),
(gst_matroska_demux_push_flac_codec_priv_data),
(gst_matroska_demux_push_xiph_codec_priv_data),
(gst_matroska_demux_add_wvpk_header),
(gst_matroska_demux_check_subtitle_buffer),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_parse_cluster),
(gst_matroska_demux_parse_contents_seekentry),
(gst_matroska_demux_parse_contents),
(gst_matroska_demux_loop_stream_parse_id),
(gst_matroska_demux_loop_stream), (gst_matroska_demux_loop):
* gst/matroska/matroska-demux.h:
* gst/matroska/matroska-ids.h:
Handle return values from pull_range in a more granular way to properly
shut down on seeks.
Combine return values from push.
Implement proper error handling.
Prepare for handling seeking correctly.
2008-03-06 19:47:48 +00:00
Stefan Kost
1e777109e8 Fix broken GObject macros
Original commit message from CVS:
* ext/annodex/gstcmmldec.h:
* ext/annodex/gstcmmlenc.h:
* ext/annodex/gstcmmltag.h:
* ext/cairo/gsttextoverlay.h:
* ext/ladspa/gstsignalprocessor.h:
* gst/matroska/ebml-read.h:
* gst/matroska/ebml-write.h:
* sys/osxaudio/gstosxaudioelement.h:
Fix broken GObject macros
2006-04-08 18:25:55 +00:00
Tim-Philipp Müller
66413b5f00 gst/matroska/: Ported matroska demuxer to 0.9.
Original commit message from CVS:
* gst/matroska/Makefile.am:
* gst/matroska/ebml-read.c:
* gst/matroska/ebml-read.h:
* gst/matroska/matroska-demux.c:
* gst/matroska/matroska-demux.h:
* gst/matroska/matroska.c: (plugin_init):
Ported matroska demuxer to 0.9.
2005-10-18 18:12:31 +00:00
Ronald S. Bultje
75ff7535dd gst/matroska/: Disgustingly evil hack for working around INTERRUPT events and their extremely annoying habit of being...
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_read_class_init),
(gst_ebml_read_init), (gst_ebml_read_use_event),
(gst_ebml_read_element_id), (gst_ebml_peek_id),
(gst_ebml_read_seek), (gst_ebml_read_skip),
(gst_ebml_read_reserve), (gst_ebml_read_buffer),
(gst_ebml_read_master):
* gst/matroska/ebml-read.h:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_contents),
(gst_matroska_demux_loop_stream), (gst_matroska_demux_audio_caps):
Disgustingly evil hack for working around INTERRUPT events and
their extremely annoying habit of being a pain in the ass. We
simply peek a cluster before reading any of it.
2004-12-03 21:08:17 +00:00
Johan Dahlin
5acffea623 *.h: Revert indenting
Original commit message from CVS:
* *.h: Revert indenting
2004-03-15 16:32:54 +00:00
Thomas Vander Stichele
5d25c00e4b gst-indent
Original commit message from CVS:
gst-indent
2004-03-14 22:34:33 +00:00
Ronald S. Bultje
12e856c26d Riff, EBML, fourcc etc. work. Not fully finished, but better than what we used to have and definately worth a first b...
Original commit message from CVS:
Riff, EBML, fourcc etc. work. Not fully finished, but better than
what we used to have and definately worth a first broad testing.

I've revived rifflib. Rifflib used to be a bytestream-for-riff, which
just dup'ed bytestream. I've rewritten rifflib to be a modern riff-
chunk parser that uses bytestream fully, plus adds some extra functions
so that riff file parsing becomes extremely easy. It also contains some
small usability functions for strh/strf and metadata parsing. Note that
it doesn't use the new tagging yet, that's a TODO.

Avidemux has been rewritten to use this. I think we all agreed that
avidemux was pretty much a big mess, which is because it used all
sort of bytestream magic all around the place. It was just ugly.
This is a lot nicer, very complete and safe. I think this is far more
robust than what the old avidemux could ever have been. Of course, it
might contain bugs, please let me know.

EBML writing has also been implemented. This is useful for matroska.
I'm intending to modify avidemux (with a riffwriter) similarly. Maybe
I'll change wavparse/-enc too to use rifflib.

Lastly, several plugins have been modified to use rifflib's fourcc
parsing instead of their own. this puts fourcc parsing in one central
place, which should make it a lot simpler to add new fourccs. We might
want to move this to its own lib instead of rifflib.

Enjoy!
2003-12-07 20:00:41 +00:00
Ronald S. Bultje
29e9ebcfda Add C-based local matroska/EBML plugin, remove libmatroska/libebml c++ one
Original commit message from CVS:
Add C-based local matroska/EBML plugin, remove libmatroska/libebml c++ one
2003-11-21 21:34:27 +00:00