Commit graph

28 commits

Author SHA1 Message Date
Tim-Philipp Müller
07f692085f gst/asfdemux/: Some clean-ups and small fixes: rename asf_stream_context structure to
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
(gst_asf_demux_seek_index_lookup),
(gst_asf_demux_handle_seek_event), (gst_asf_demux_get_stream),
(gst_asf_demux_setup_pad), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_process_file), (gst_asf_demux_descramble_segment),
(gst_asf_demux_push_buffer), (gst_asf_demux_process_chunk),
(gst_asf_demux_process_segment), (gst_asf_demux_handle_data):
* gst/asfdemux/gstasfdemux.h:
Some clean-ups and small fixes: rename asf_stream_context structure to
AsfStream; inline some three-line utility functions that are only used
once anyway and get rid of their associated helper structs; make debug
category global so that it is used by the debug statements in the other
file as well; simplify gst_asf_demux_get_stream(); fix accidental
implicit initialisation of stream->last_buffer_timestamp to 0, which
would lead to missing timestamps on the first buffer; put fourcc format
into video caps to make certain proprietary wmv decoders happy (for the
case of WMVA in particular); play_time is offset by preroll as well, so
fix overreporting of duration for some files.
2007-04-20 17:32:00 +00:00
Tim-Philipp Müller
d0483656b3 gst/asfdemux/: Make asfdemux work in pull mode where possible. If there's an index at the end of the file, read it an...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_free_stream),
(gst_asf_demux_reset), (gst_asf_demux_init),
(gst_asf_demux_activate), (gst_asf_demux_activate_push),
(gst_asf_demux_activate_pull), (gst_asf_demux_sink_event),
(gst_asf_demux_seek_index_lookup),
(gst_asf_demux_reset_stream_state_after_discont),
(gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_chain_headers),
(gst_asf_demux_chain), (gst_asf_demux_pull_data),
(gst_asf_demux_pull_indices),
(gst_asf_demux_parse_data_object_start),
(gst_asf_demux_pull_headers), (gst_asf_demux_loop),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_file),
(gst_asf_demux_process_simple_index),
(gst_asf_demux_process_object),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_handle_data), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Make asfdemux work in pull mode where possible. If there's an index
at the end of the file, read it and use it for seeking purposes.
2007-04-12 13:38:03 +00:00
Tim-Philipp Müller
12f441024b gst/asfdemux/gstasfdemux.*: Parse advanced mutual exclusion object and only add pads for 'hidden' streams (those in a...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_file),
(gst_asf_demux_process_advanced_mutual_exclusion),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Parse advanced mutual exclusion object and only add pads for
'hidden' streams (those in an extended stream header) that are
mutually exclusive with an already existing 'main stream' if
the broadcasting flag is not set. If the broadcasting flag is set,
assume that data for this stream isn't sent. (This should ideally be
solved better by making playbin more robust against this and/or by
making mmssrc send some information downstream about which streams
will be streamed). Fixes #353116.
2007-02-15 19:55:55 +00:00
Tim-Philipp Müller
f8d7045fc8 gst/asfdemux/: Refactor and clean up header parsing and chain function a bit; get rid of some cruft; make header pars...
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_identify_guid), (asf_demux_peek_object),
(gst_asf_demux_chain_headers), (gst_asf_demux_chain),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_stream),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_header),
(gst_asf_demux_process_file), (gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Refactor and clean up header parsing and chain function a bit; get
rid of some cruft; make header parsing a tad more robust, fixing
#403188.
2007-02-08 21:07:27 +00:00
Tim-Philipp Müller
7e1371c41e gst/asfdemux/gstasfdemux.*: Don't crash in the seek event handling code when playtime is 0, as may be the case with l...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event),
(gst_asf_demux_process_data), (gst_asf_demux_process_file),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Don't crash in the seek event handling code when playtime is 0,
as may be the case with live streams (#386218). Implement SEEKING
query so applications can query seekability without second-guessing
based on whether we have a duration or not.
2006-12-15 17:54:48 +00:00
Tim-Philipp Müller
1a414437a6 gst/asfdemux/: Parse extended stream properties objects and stream objects hidden inside them (but delay creation of ...
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_obj_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Parse extended stream properties objects and stream objects
hidden inside them (but delay creation of the appropriate
pads until after all the 'normal' stream objects have been
dealt with) (#343763). Also parse language list object.
2006-07-14 13:02:53 +00:00
Tim-Philipp Müller
0a27252bb5 gst/asfdemux/: Add some more GUIDs and make debug log more readable and easier to follow when parsing the headers.
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_identify_guid),
(gst_asf_demux_process_header), (gst_asf_demux_push_obj),
(gst_asf_demux_pop_obj), (gst_asf_demux_process_object),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Add some more GUIDs and make debug log more readable
and easier to follow when parsing the headers.
2006-07-07 19:26:40 +00:00
Tim-Philipp Müller
3142e1a289 gst/asfdemux/gstasfdemux.*: Handle unknown codec IDs/fourccs properly (#345879); send tag events after newsegment eve...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_push_buffer):
* gst/asfdemux/gstasfdemux.h:
Handle unknown codec IDs/fourccs properly (#345879); send tag
events after newsegment event; fix use of GST_FOURCC_FORMAT
macro.
2006-06-28 11:20:03 +00:00
Stefan Kost
fadba7919f Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Original commit message from CVS:
* ext/a52dec/gsta52dec.h:
* ext/amrnb/amrnbdec.h:
* ext/amrnb/amrnbenc.h:
* ext/amrnb/amrnbparse.h:
* ext/mpeg2dec/gstmpeg2dec.h:
* ext/sidplay/gstsiddec.h:
* gst/ac3parse/gstac3parse.h:
* gst/asfdemux/gstasfdemux.h:
* gst/asfdemux/gstasfmux.h:
* gst/dvdlpcmdec/gstdvdlpcmdec.h:
* gst/iec958/ac3iec.h:
* gst/mpegaudioparse/gstmpegaudioparse.h:
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstmpegclock.h:
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 21:11:41 +00:00
Fabrizio Gennari
08c4bd4168 gst/asfdemux/gstasfdemux.*: Subtract first timestamp from timestamps, so that stream starts from 0; makes live stream...
Original commit message from CVS:
Patch by: Fabrizio Gennari  <fabrizio dot ge at tiscali dot it>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
(gst_asf_demux_process_chunk):
* gst/asfdemux/gstasfdemux.h:
Subtract first timestamp from timestamps, so that
stream starts from 0; makes live streams that don't
start at 0 work again (fixes #317310, #336097).
2006-03-27 10:39:03 +00:00
Tim-Philipp Müller
366b006b7d asfdemux ported to 0.10. Does still need a bit of work (seems like there's something funky going on when timestamping...
Original commit message from CVS:
* configure.ac:
* gst/asfdemux/asfheaders.c: (gst_asf_identify_guid),
(gst_asf_get_guid_nick):
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_class_init), (gst_asf_demux_init),
(gst_asf_demux_sink_event), (gst_asf_demux_handle_seek_event),
(gst_asf_demux_handle_src_event),
(gst_asf_demux_get_current_offset), (gst_asf_demux_chain),
(gst_asf_demux_skip_bytes), (gst_asf_demux_identify_guid),
(gst_asf_demux_get_uint8), (gst_asf_demux_get_uint16),
(gst_asf_demux_get_uint32), (gst_asf_demux_get_uint64),
(gst_asf_demux_get_var_length), (gst_asf_demux_get_buffer),
(gst_asf_demux_get_bytes), (gst_asf_demux_get_string),
(gst_asf_demux_get_guid), (gst_asf_demux_get_obj_file),
(gst_asf_demux_get_bitrate_record),
(gst_asf_demux_get_obj_comment), (gst_asf_demux_get_obj_header),
(gst_asf_demux_get_obj_header_ext), (gst_asf_demux_get_obj_stream),
(gst_asf_demux_get_replicated_data), (gst_asf_demux_get_obj_data),
(gst_asf_demux_get_obj_data_correction),
(gst_asf_demux_get_stream_audio),
(gst_asf_demux_get_stream_correction),
(gst_asf_demux_get_stream_video),
(gst_asf_demux_get_stream_video_format),
(gst_asf_demux_get_stream), (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_commit_taglist),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_get_object_header), (gst_asf_demux_process_data),
(gst_asf_demux_process_header), (gst_asf_demux_process_file),
(gst_asf_demux_process_comment),
(gst_asf_demux_process_bitrate_props_object),
(gst_asf_demux_process_header_ext), (gst_asf_demux_process_object),
(gst_asf_demux_descramble_segment),
(gst_asf_demux_element_send_event),
(gst_asf_demux_send_event_unlocked), (gst_asf_demux_push_buffer),
(gst_asf_demux_process_chunk), (gst_asf_demux_process_segment),
(gst_asf_demux_handle_data), (gst_asf_demux_parse_data),
(gst_asf_demux_get_src_query_types),
(gst_asf_demux_handle_src_query), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
asfdemux ported to 0.10. Does still need a bit of work (seems like
there's something funky going on when timestamping video frames).
The seeking code is likely to make Wim cry, but hey, at least it
compiles.
2006-02-15 15:48:07 +00:00
Thomas Vander Stichele
ffe763c043 expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:48:07 +00:00
Ronald S. Bultje
6f525a1b18 gst/asfdemux/gstasfdemux.*: Improve metadata display, e.g. if the metadata comes before the streams are loaded (which...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_commit_taglist), (gst_asf_demux_process_comment),
(gst_asf_demux_process_ext_content_desc),
(gst_asf_demux_change_state), (gst_asf_demux_add_audio_stream),
(gst_asf_demux_add_video_stream), (gst_asf_demux_setup_pad):
* gst/asfdemux/gstasfdemux.h:
Improve metadata display, e.g. if the metadata comes before the
streams are loaded (which is perfectly valid).
2005-01-27 00:56:11 +00:00
Ronald S. Bultje
318d8ac686 gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we...
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init),
(gst_asf_demux_loop), (gst_asf_demux_process_file),
(gst_asf_demux_process_data), (gst_asf_demux_handle_data),
(gst_asf_demux_process_object), (gst_asf_demux_get_stream),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event),
(gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this
feels like. I think we should set a new requirement for demuxers
from now on to implement sane loop functions, data loops, query
and seek functions before first commit into CVS. And this commit
fixes all of the above.
2004-06-10 04:23:03 +00:00
Ronald S. Bultje
a12314291f gst/asfdemux/: Add tagging support to demuxer, split out registration in its own and prevent having some tables in ou...
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_type),
(gst_asf_demux_base_init), (gst_asf_demux_process_comment),
(gst_asf_demux_setup_pad):
* gst/asfdemux/gstasfdemux.h:
* gst/asfdemux/gstasfmux.c:
* gst/asfdemux/gstasfmux.h:
Add tagging support to demuxer, split out registration in its own
file instead of in demux (hacky), and prevent having some tables
in our memory multiple times (in asfheaders.h).
2004-05-02 18:07:39 +00:00
Johan Dahlin
72ec4a2aa3 *.h: Revert indenting
Original commit message from CVS:
* *.h: Revert indenting
2004-03-15 16:32:53 +00:00
Thomas Vander Stichele
908defa2c4 gst-indent
Original commit message from CVS:
gst-indent
2004-03-14 22:34:30 +00:00
Ronald S. Bultje
77db559306 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:33 +00:00
Ronald S. Bultje
2081f9ad65 Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes fro...
Original commit message from CVS:
Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes from several source files
2003-11-07 12:46:51 +00:00
David Schleef
ec3c196db4 change gst/bytestream.h to gst/bytestream/bytestream.h
Original commit message from CVS:
change gst/bytestream.h to gst/bytestream/bytestream.h
2003-10-29 03:15:55 +00:00
Benjamin Otte
97bf62c74f merge TYPEFIND branch. Major changes:
Original commit message from CVS:
merge TYPEFIND branch. Major changes:
- totally reworked type(find) system
- all typefind functions are in gst/typefind now
- more typefind functions then before
- some plugins might fail to compile now because I don't have them installed and they
a) require bytestream or
b) haven't had their typefind fixed.
Please fix those plugins and put the typefind functions into gst/typefind if they don't have dependencies
2003-10-28 20:52:41 +00:00
Ronald S. Bultje
0ea59b7a7b New typefind system: bytestream is now part of the core all plugins have been modified to use this new typefind syste...
Original commit message from CVS:
New typefind system:
* bytestream is now part of the core
* all plugins have been modified to use this new typefind system
* asf typefinding added
* mpeg video stream typefiding removed because it's broken
* duplicate typefind entries removed
* extra id3 typefinding added, because we've seen 4 types of files
(riff/wav, flac, vorbis, mp3) with id3 headers and each of these needs
to work. Instead, I've added an id3 element and let it redo typefiding
after the id3 header. this needs a hack because spider only typefinds
once. We can remove this hack once spider supports multiple typefinds.
* with all this, mp3 typefinding is semi-rewritten
* id3 typefinding in flac/vorbis is removed, it's no longer needed
* fixed spider and gst-typefind to use this, too.
* Other general cleanups
2003-10-01 13:14:51 +00:00
Owen Fraser-Green
9d3ecf1c18 Split some of the generic header stuff into a seperate header file.
Original commit message from CVS:
Split some of the generic header stuff into a seperate header file.
2003-01-31 21:41:07 +00:00
Owen Fraser-Green
2597a7e1e2 Fixed timing problem and more header decoding bugs
Original commit message from CVS:
Fixed timing problem and more header decoding bugs
2003-01-31 21:10:00 +00:00
Owen Fraser-Green
1a135b7cda Fixed a few bugs in the header checking. Also added descrambling code.
Original commit message from CVS:
Fixed a few bugs in the header checking. Also added descrambling code.
2003-01-31 18:23:38 +00:00
Owen Fraser-Green
5ee601e2b6 Added code to handle split segments, changed src caps to video/avi to make it work with ffmpeg. Correct time conversi...
Original commit message from CVS:
Added code to handle split segments, changed src caps to video/avi to make
it work with ffmpeg. Correct time conversion code. Numerous minor bug fixes
and slight code cleanup.
2003-01-23 11:15:49 +00:00
Wim Taymans
87521b739c apply the taaz vpatch
Original commit message from CVS:
apply the taaz vpatch
2002-10-17 22:01:00 +00:00
Christian Schaller
794808e9e5 First step in giving us asf support is making this code widely available.
Original commit message from CVS:
First step in giving us asf support is making this code widely available.
Now back to step 2 which used to be step 1 and get this code debugged so
it works :)
2002-10-17 21:41:47 +00:00