summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.c
Commit message (Collapse)AuthorAgeFilesLines
* Pass unhandled queries upstream instead of just dropping them (#326446). ↵Tim-Philipp Müller2006-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | Update query type arrays here and there. Original commit message from CVS: * ext/dv/gstdvdemux.c: (gst_dvdemux_src_query), (gst_dvdemux_sink_query): * ext/flac/gstflacdec.c: (gst_flac_dec_src_query): * ext/speex/gstspeexdec.c: (speex_get_query_types), (speex_dec_src_query): * ext/speex/gstspeexenc.c: (gst_speexenc_src_query), (gst_speexenc_sink_query): * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query): * gst/matroska/matroska-demux.c: (gst_matroska_demux_get_src_query_types), (gst_matroska_demux_handle_src_query): * gst/wavparse/gstwavparse.c: (gst_wavparse_get_query_types), (gst_wavparse_pad_query): Pass unhandled queries upstream instead of just dropping them (#326446). Update query type arrays here and there.
* gst/avi/gstavidemux.*: Third attempt, use gst_pad_is_linked() this time.Tim-Philipp Müller2006-02-041-10/+9
| | | | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream), (gst_avi_demux_all_source_pads_unlinked), (gst_avi_demux_process_next_entry): * gst/avi/gstavidemux.h: Third attempt, use gst_pad_is_linked() this time.
* gst/avi/gstavidemux.c: Only pause if all pads are unlinked AND we've tried ↵Tim-Philipp Müller2006-02-021-1/+1
| | | | | | | | | to send data on all of them at least once. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_all_source_pads_unlinked): Only pause if all pads are unlinked AND we've tried to send data on all of them at least once.
* gst/avi/gstavidemux.c: Make loop function/task pause itself when all source ↵Tim-Philipp Müller2006-02-021-3/+32
| | | | | | | | | | pads are unlinked. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_all_source_pads_unlinked), (gst_avi_demux_process_next_entry), (gst_avi_demux_loop): Make loop function/task pause itself when all source pads are unlinked.
* C89 fixes: declare variables at the beginning of a block andJens Granseuer2006-01-231-1/+1
| | | | | | | | | | | | | Original commit message from CVS: * ext/libpng/gstpngenc.c: (gst_pngenc_chain): * gst/avi/gstavidemux.c: (gst_avi_demux_invert): * gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps): * gst/rtsp/sdpmessage.h: * gst/udp/gstdynudpsink.c: (gst_dynudpsink_render): * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_get_stats): C89 fixes: declare variables at the beginning of a block and make gcc-2.9x happy (#328264; patch by: Jens Granseuer <jensgr at gmx dot net>).
* gst/avi/gstavidemux.c: Stupid signedness issue...Edward Hervey2005-12-191-5/+12
| | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_scan): Stupid signedness issue...
* gst/avi/gstavidemux.c: Construct index for indexless files.Edward Hervey2005-12-191-47/+189
| | | | | | | | | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_reset), (gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream), (gst_avi_demux_parse_odml), (gst_avi_demux_peek_tag), (gst_avi_demux_next_data_buffer), (gst_avi_demux_stream_scan), (gst_avi_demux_stream_header), (gst_avi_demux_loop): Construct index for indexless files. Make sure pad/buffers are correctly reset to NULL once we don't need them anymore, else we get lovely segfaults/assertions. * gst/wavparse/gstwavparse.c: Yes, you can have 96KHz audio and wma in wav :(
* gst/avi/gstavidemux.c: Memleak and crasher fixes.Edward Hervey2005-12-071-5/+18
| | | | | | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream), (gst_avi_demux_stream_header), (gst_avi_demux_invert): Memleak and crasher fixes. * gst/wavparse/gstwavparse.c: (gst_wavparse_base_init), (gst_wavparse_create_sourcepad), (gst_wavparse_stream_headers): Memleak fixes
* gst/avi/gstavidemux.c: Useless check now we're setting the current entry ↵Edward Hervey2005-11-281-6/+0
| | | | | | | | correctly. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry): Useless check now we're setting the current entry correctly.
* ext/dv/gstdvdemux.c (gst_dvdemux_handle_sink_event) ↵Andy Wingo2005-11-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (gst_dvdemux_demux_frame) ext/flac/gstflacdec.c (gst_flacdec_writ... Original commit message from CVS: 2005-11-22 Andy Wingo <wingo@pobox.com> * ext/dv/gstdvdemux.c (gst_dvdemux_handle_sink_event) (gst_dvdemux_demux_frame) * ext/flac/gstflacdec.c (gst_flacdec_write) * ext/flac/gstflacenc.c (gst_flacenc_seek_callback) (gst_flacenc_sink_event) * ext/gconf/gstgconfaudiosink.c (gst_gconf_audio_sink_init) * ext/gconf/gstgconfvideosink.c (gst_gconf_video_sink_init) * ext/libpng/gstpngdec.c (gst_pngdec_caps_create_and_set) * ext/speex/gstspeexdec.c (speex_dec_event, speex_dec_chain) * gst/auparse/gstauparse.c (gst_auparse_chain) * gst/autodetect/gstautoaudiosink.c (gst_auto_audio_sink_init) * gst/autodetect/gstautovideosink.c (gst_auto_video_sink_init) * gst/avi/gstavidemux.c (gst_avi_demux_stream_header) (gst_avi_demux_handle_seek) * gst/goom/gstgoom.c (gst_goom_event) * gst/matroska/ebml-write.c (gst_ebml_write_seek) * gst/matroska/matroska-demux.c (gst_matroska_demux_handle_seek_event) (gst_matroska_demux_loop_stream_parse_id) * gst/wavenc/gstwavenc.c (gst_wavenc_stop_file) * gst/wavparse/gstwavparse.c (gst_wavparse_handle_seek) (gst_wavparse_stream_headers): Run update-funcnames.
* Update for stream lock API changes: don't take stream log in sink event ↵Tim-Philipp Müller2005-11-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | handlers any longer and change GST_STREAM_LOC... Original commit message from CVS: * ext/dv/gstdvdemux.c: (gst_dvdemux_handle_sink_event): * ext/flac/gstflacdec.c: (gst_flacdec_loop), (gst_flacdec_src_event): * ext/flac/gstflacenc.c: (gst_flacenc_sink_event): * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_event), (gst_signal_processor_getrange), (gst_signal_processor_chain): * gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek): * gst/flx/gstflxdec.c: (gst_flxdec_src_event_handler), (gst_flxdec_sink_event_handler): * gst/matroska/matroska-demux.c: (gst_matroska_demux_handle_seek_event): * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek): Update for stream lock API changes: don't take stream log in sink event handlers any longer and change GST_STREAM_LOCK to GST_PAD_STREAM_LOCK. Don't leak references in flxdec event functions.
* Fixes for GST_FOURCC_FORMAT API change.Tim-Philipp Müller2005-11-211-15/+16
| | | | | | | | | | | | | | | Original commit message from CVS: * ext/aalib/gstaasink.c: (gst_aasink_setcaps): * gst/avi/gstavidemux.c: (gst_avi_demux_parse_file_header), (gst_avi_demux_read_subindexes), (gst_avi_demux_parse_stream), (gst_avi_demux_parse_odml), (gst_avi_demux_stream_index), (gst_avi_demux_sync), (gst_avi_demux_stream_header), (gst_avi_demux_stream_data): * gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps): * gst/wavenc/gstwavenc.c: (write_metadata): * gst/wavparse/gstwavparse.c: (gst_wavparse_parse_adtl), (gst_wavparse_parse_file_header), (gst_wavparse_stream_headers): Fixes for GST_FOURCC_FORMAT API change.
* gst/avi/gstavidemux.c: Invert DIB images again (see #132341).Tim-Philipp Müller2005-11-151-0/+38
| | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (swap_line), (gst_avi_demux_invert), (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data): Invert DIB images again (see #132341).
* gst/avi/gstavidemux.*: Yeah, implement proper seeking. Exact seeking and ↵Edward Hervey2005-11-111-139/+182
| | | | | | | | | | | | | | segment seeking. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_reset), (gst_avi_demux_src_convert), (gst_avi_demux_handle_src_event), (gst_avi_demux_stream_header), (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data), (gst_avi_demux_loop): * gst/avi/gstavidemux.h: Yeah, implement proper seeking. Exact seeking and segment seeking. Still need to do some checks for segment_stop.
* gst/avi/gstavidemux.c: No need to take the STREAM_LOCK in the loop function. ↵Tim-Philipp Müller2005-11-071-9/+6
| | | | | | | | | | | Improve some debug messages. Don't leak ... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream), (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data), (gst_avi_demux_loop): No need to take the STREAM_LOCK in the loop function. Improve some debug messages. Don't leak pad names in debug messages.
* Set correct stream_time in newsegment event. avi can also handle a duration ↵Wim Taymans2005-10-211-0/+1
| | | | | | | | | | | query now. Original commit message from CVS: * ext/dv/gstdvdemux.c: (gst_dvdemux_demux_frame): * gst/avi/gstavidemux.c: (gst_avi_demux_get_src_query_types), (gst_avi_demux_handle_seek): Set correct stream_time in newsegment event. avi can also handle a duration query now.
* gst/avi/gstavidemux.c: Correctly fill in the stream time.Wim Taymans2005-10-201-1/+1
| | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek): Correctly fill in the stream time.
* API change fix.Wim Taymans2005-10-191-4/+11
| | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/dv/gstdvdemux.c: (gst_dvdemux_get_src_query_types), (gst_dvdemux_src_query): * ext/flac/gstflacdec.c: (gst_flacdec_length), (gst_flacdec_src_query): * ext/raw1394/gstdv1394src.c: (gst_dv1394src_query): * ext/speex/gstspeexdec.c: (speex_dec_src_query): * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query): * gst/debug/gstnavseek.c: (gst_navseek_seek): * gst/debug/progressreport.c: (gst_progress_report_report): * gst/matroska/ebml-read.c: (gst_ebml_read_get_length): * gst/matroska/matroska-demux.c: (gst_matroska_demux_handle_src_query): * gst/matroska/matroska-mux.c: (gst_matroska_mux_start): * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek), (gst_wavparse_stream_headers), (gst_wavparse_stream_data), (gst_wavparse_pad_convert), (gst_wavparse_pad_query), (gst_wavparse_srcpad_event): API change fix.
* newsegment API update.Wim Taymans2005-10-111-2/+2
| | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/dv/gstdvdemux.c: (gst_dvdemux_handle_sink_event), (gst_dvdemux_demux_frame): * ext/flac/gstflacdec.c: (gst_flacdec_write): * gst/auparse/gstauparse.c: (gst_auparse_chain): * gst/avi/gstavidemux.c: (gst_avi_demux_stream_header), (gst_avi_demux_handle_seek): * gst/goom/gstgoom.c: (gst_goom_event): * gst/wavenc/gstwavenc.c: (gst_wavenc_stop_file): * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek), (gst_wavparse_stream_headers), (gst_wavparse_stream_data), (gst_wavparse_loop), (gst_wavparse_pad_convert), (gst_wavparse_srcpad_event): newsegment API update.
* gst/avi/gstavidemux.c: Don't crash when encountering a stream with an ↵Tim-Philipp Müller2005-09-261-16/+48
| | | | | | | | | | | | | | unknown fourcc or codec id. Instead, create a p... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_base_init), (gst_avi_demux_class_init), (gst_avi_demux_parse_stream), (gst_avi_demux_change_state): Don't crash when encountering a stream with an unknown fourcc or codec id. Instead, create a pad of type video/x-avi-unknown or audio/x-avi-unknown, which as a side-effect also results in less confusing error messages in players ('no decoder' vs. 'no streams'); minor fixes to state change function and class_init function.
* All plugins updated for element state changes.Andy Wingo2005-09-021-7/+8
| | | | | | | Original commit message from CVS: 2005-09-02 Andy Wingo <wingo@pobox.com> * All plugins updated for element state changes.
* gst/: Uncomment metadata and codec-name handling.Ronald S. Bultje2005-08-161-2/+11
| | | | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream), (gst_avi_demux_stream_header): * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), (gst_qtdemux_add_stream), (qtdemux_parse_tree): Uncomment metadata and codec-name handling.
* gst/avi/gstavidemux.c: Fix AVI header parsing: add missing break statement afterTim-Philipp Müller2005-08-091-0/+4
| | | | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_header): Fix AVI header parsing: add missing break statement after GST_RIFF_INFO_LIST parsing code; gst_riff_read_chunk() has already advanced the avi->offset, no need to do it twice (fixes MovieOfMovies.avi).
* gst/avi/gstavidemux.c: Fix seeking (or, well, fix threading issue where a ↵Ronald S. Bultje2005-08-091-5/+5
| | | | | | | | | | | | variable was set before a lock was taken an... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event), (gst_avi_demux_handle_seek): Fix seeking (or, well, fix threading issue where a variable was set before a lock was taken and was already unset before that same lock was taken and was thus no longer in existance when it actually had to be used).
* gst/avi/gstavidemux.c: Mixing binary and logical operators is not going to ↵Ronald S. Bultje2005-08-091-2/+2
| | | | | | | | | work; fix position-querying in Totem. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry): Mixing binary and logical operators is not going to work; fix position-querying in Totem.
* gst/avi/gstavidemux.c: You need to allocatate (len+1) characters to store a ↵Edward Hervey2005-08-041-3/+5
| | | | | | | | | | len size string. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_reset), (gst_avi_demux_parse_stream), (gst_avi_demux_process_next_entry): You need to allocatate (len+1) characters to store a len size string. Also don't stop the processing task if the output pad is not linked.
* Various event updates and cleanups.Wim Taymans2005-07-271-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/amrnb/amrnbparse.c: (gst_amrnbparse_event), (gst_amrnbparse_loop): * ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event), (gst_dvdec_handle_src_event), (gst_dvdec_decode_frame): * ext/mad/gstid3tag.c: (gst_id3_tag_src_event), (gst_id3_tag_sink_event), (gst_id3_tag_chain): * ext/mad/gstmad.c: (gst_mad_src_query), (index_seek), (normal_seek), (gst_mad_sink_event), (gst_mad_chain): * ext/mpeg2dec/gstmpeg2dec.c: * ext/shout2/gstshout2.c: (gst_shout2send_event): * ext/sidplay/gstsiddec.cc: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event), (gst_avi_demux_send_event), (gst_avi_demux_stream_header), (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry): * gst/goom/gstgoom.c: (gst_goom_event): * gst/realmedia/rmdemux.c: (gst_rmdemux_sink_event), (gst_rmdemux_chain), (gst_rmdemux_send_event), (gst_rmdemux_add_stream): * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek), (gst_wavparse_stream_headers), (gst_wavparse_stream_data), (gst_wavparse_loop), (gst_wavparse_srcpad_event): Various event updates and cleanups.
* ext/mad/gstmad.c: Add convert function for proper timestamp calculations.Wim Taymans2005-07-161-27/+26
| | | | | | | | | | | | Original commit message from CVS: * ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_sink_event), (gst_mad_chain): Add convert function for proper timestamp calculations. * gst/avi/gstavidemux.c: (gst_avi_demux_send_event), (gst_avi_demux_stream_header), (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry), (gst_avi_demux_loop): Send out initial discont.
* gst/base/gstbasesrc.c: Allow subclasses to implement their own negotiation.Wim Taymans2005-07-071-1/+0
| | | | | | | Original commit message from CVS: * gst/base/gstbasesrc.c: (gst_base_src_get_range), (gst_base_src_default_negotiate), (gst_base_src_negotiate): Allow subclasses to implement their own negotiation.
* Replace GST_PLUGINS_LIBS_* with GST_PLUGINS_BASE_*Jan Schmidt2005-07-011-9/+19
| | | | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: 2005-07-01 Jan Schmidt <thaytan@mad.scientist.com> * ext/libcaca/Makefile.am: * ext/mad/Makefile.am: * gst/effectv/Makefile.am: * gst/udp/Makefile.am: Replace GST_PLUGINS_LIBS_* with GST_PLUGINS_BASE_* * ext/mad/gstid3tag.c: (gst_id3_tag_src_query), (gst_id3_tag_src_event), (gst_id3_tag_sink_event), (gst_id3_tag_chain), (plugin_init): * ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_chain): Signedness warning fix, use gst_pad_get_peer instead of GST_PAD_PEER in querying and event handling, because we're not holding the pad lock and the peer may disappear. * gst/avi/gstavidemux.c: (gst_avi_demux_parse_subindex), (gst_avi_demux_parse_index), (gst_avi_demux_massage_index): Signedness warning fixes. * gst/videofilter/gstvideotemplate.c: (plugin_init): Remove gst_library_load
* gst/avi/gstavidemux.c: Compiler pains.Ronald S. Bultje2005-06-301-2/+3
| | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query): Compiler pains.
* gst/avi/: Port from -THREADED to HEAD, and fix for latest API changes of the ↵Ronald S. Bultje2005-06-301-899/+843
| | | | | | | | | | | | | | | | | | | | | | | | | | | | day. Keep avimux dead for now. Original commit message from CVS: * gst/avi/Makefile.am: * gst/avi/gstavi.c: (plugin_init): * gst/avi/gstavidemux.c: (gst_avi_demux_get_type), (gst_avi_demux_class_init), (gst_avi_demux_init), (gst_avi_demux_reset), (gst_avi_demux_index_next), (gst_avi_demux_index_entry_for_time), (gst_avi_demux_index_entry_for_byte), (gst_avi_demux_index_entry_for_frame), (gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event), (gst_avi_demux_parse_file_header), (gst_avi_demux_stream_init), (gst_avi_demux_parse_avih), (gst_avi_demux_parse_superindex), (gst_avi_demux_parse_subindex), (gst_avi_demux_read_subindexes), (gst_avi_demux_parse_stream), (gst_avi_demux_parse_odml), (gst_avi_demux_parse_index), (gst_avi_demux_stream_index), (gst_avi_demux_stream_scan), (gst_avi_demux_massage_index), (gst_avi_demux_stream_header), (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data), (gst_avi_demux_loop), (gst_avi_demux_sink_activate), (gst_avi_demux_sink_activate_pull): * gst/avi/gstavidemux.h: Port from -THREADED to HEAD, and fix for latest API changes of the day. Keep avimux dead for now.
* gst/avi/gstavidemux.c: Declare variables at beginning of block and make ↵Gergely Nagy2005-02-171-1/+2
| | | | | | | | | | | | | | | | | | | gcc-2.95 happy Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_invert): Declare variables at beginning of block and make gcc-2.95 happy (fixes # 167482, patch by Gergely Nagy). * gst/tcp/gsttcpclientsrc.c: * gst/tcp/gsttcpclientsrc.h: Move some includes into the header, so that struct sockaddr_in is defined when it should be defined on FreeBSD as well (fixes #167483). * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive): Don't pass uninitialised values to setsockopt() here either.
* gst/avi/gstavidemux.*: Invert DIB images. Fixes #132341.Ronald S. Bultje2005-01-291-1/+43
| | | | | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream), (swap_line), (gst_avi_demux_invert), (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data): * gst/avi/gstavidemux.h: Invert DIB images. Fixes #132341.
* Allow seeks on audio pad, make mad forward those (#164826).Ronald S. Bultje2005-01-271-6/+0
| | | | | | | | | | Original commit message from CVS: Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net> * ext/mad/gstmad.c: (gst_mad_src_event): * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event): Allow seeks on audio pad, make mad forward those (#164826). * gst/audioscale/gstaudioscale.c: (gst_audioscale_chain): Set duration (#165335).
* debuggingThomas Vander Stichele2005-01-131-13/+24
| | | | | Original commit message from CVS: debugging
* gst-libs/gst/riff/riff-read.c: Don't bail on unknown events.Ronald S. Bultje2005-01-101-18/+26
| | | | | | | | | | | | | Original commit message from CVS: * gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event): Don't bail on unknown events. * gst/audioscale/gstaudioscale.c: (gst_audioscale_chain): Don't crash on events before negotiation. * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): Send tags on pads, too. * gst/playback/gststreamselector.c: (gst_stream_selector_request_new_pad): Forward events on first pad if no input was selected yet.
* gst/avi/gstavidemux.c: Add some more debug. Fix logic error when setting ↵Ronald S. Bultje2004-12-231-4/+7
| | | | | | | | | | movi offset while reading index. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_stream_scan): Add some more debug. Fix logic error when setting movi offset while reading index.
* gst/avi/gstavidemux.c: Add some debugging. Better detection of broken ↵Ronald S. Bultje2004-12-231-4/+17
| | | | | | | | | | | | indexes and the accompanying index recovery. No... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_stream_scan), (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry): Add some debugging. Better detection of broken indexes and the accompanying index recovery. No infinite loops on state changes when we're still in our loopfunction.
* gst/avi/gstavidemux.c: Work for truncated (unfinished download etc.) files. ↵Ronald S. Bultje2004-12-181-4/+16
| | | | | | | | Fixes #160514. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index): Work for truncated (unfinished download etc.) files. Fixes #160514.
* ext/a52dec/gsta52dec.*: Do something useful with timestamps. Make ↵Ronald S. Bultje2004-12-061-2/+2
| | | | | | | | | | | | | | | chain-based (since there's really no reason to be l... Original commit message from CVS: * ext/a52dec/gsta52dec.c: (gst_a52dec_init), (gst_a52dec_handle_event), (gst_a52dec_update_streaminfo), (gst_a52dec_handle_frame), (gst_a52dec_chain), (gst_a52dec_change_state), (plugin_init): * ext/a52dec/gsta52dec.h: Do something useful with timestamps. Make chain-based (since there's really no reason to be loopbased). * gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry): Update current_byte/frame correctly.
* gst/avi/gstavidemux.c: Fix quite humiliating bug in omitting 0-sized index ↵Ronald S. Bultje2004-11-291-9/+20
| | | | | | | | | | chunks but forgetting to count them for ti... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_massage_index): Fix quite humiliating bug in omitting 0-sized index chunks but forgetting to count them for timestamps.
* ext/gnomevfs/gstgnomevfssrc.c: Some debug.Ronald S. Bultje2004-10-121-39/+319
| | | | | | | | | | | | | | | | | | | Original commit message from CVS: * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get), (gst_gnomevfssrc_srcpad_query), (gst_gnomevfssrc_srcpad_event): Some debug. * gst/avi/gstavidemux.c: (gst_avi_demux_reset), (gst_avi_demux_handle_src_event), (gst_avi_demux_read_superindex), (gst_avi_demux_read_subindexes), (gst_avi_demux_add_stream), (gst_avi_demux_stream_index), (gst_avi_demux_skip), (gst_avi_demux_sync), (gst_avi_demux_stream_scan), (gst_avi_demux_massage_index), (gst_avi_demux_stream_header): * gst/avi/gstavidemux.h: Support for openDML-2.0 indx/ix## chunks. Support for broken index recovery (where, if part of the index is broken, we will still read the rest of the index and recover the broken part by stream scanning). More broken media support. EOS workarounds. General AVI braindamage headache recovery. Aspirin included.
* gst/avi/gstavidemux.c: OK, so the original code was too strict. It makes ↵Ronald S. Bultje2004-10-091-51/+56
| | | | | | | | | | | random AVI files hang for seconds upon openi... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): OK, so the original code was too strict. It makes random AVI files hang for seconds upon opening, which is unacceptable and is far beyond the original goal of getting multiple chunks for one-chunk sounc stream files. So now do just that.
* gst/avi/gstavidemux.c: Prevent overwrite of size member. Makes audio sound ↵Ronald S. Bultje2004-10-051-5/+6
| | | | | | | | crappy. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): Prevent overwrite of size member. Makes audio sound crappy.
* gst/avi/gstavidemux.c: There was something wrong with the index massaging.Ronald S. Bultje2004-10-041-2/+2
| | | | | | Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): There was something wrong with the index massaging.
* gst/avi/gstavidemux.c: Fix seeking in some files. All this code is no longer ↵Ronald S. Bultje2004-10-041-52/+3
| | | | | | | | | | needed (and actually breaks stuff) becau... Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event): Fix seeking in some files. All this code is no longer needed (and actually breaks stuff) because we now synchronize the full index right when reading the header.
* gst/avi/gstavidemux.c: Improve allocation, cutting and sorting of the index. ↵Ronald S. Bultje2004-10-041-84/+132
| | | | | | | | | | | How takes a few seconds instead of minutes. Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), (gst_avi_demux_stream_scan), (sort), (gst_avi_demux_massage_index), (gst_avi_demux_stream_header), (gst_avi_demux_stream_data): Improve allocation, cutting and sorting of the index. How takes a few seconds instead of minutes.
* gst-libs/gst/riff/riff-media.c: Add wing commander format mimetype/fourccs.Ronald S. Bultje2004-10-021-6/+9
| | | | | | | | | | Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_video_template_caps): Add wing commander format mimetype/fourccs. * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): Don't crash if some value is 0.
* gst-libs/gst/riff/riff-media.c: Add DIB fourcc (raw, palettized 8-bit RGB).Ronald S. Bultje2004-10-021-1/+6
| | | | | | | | | | | | | | | | | | | | | | Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_video_template_caps): Add DIB fourcc (raw, palettized 8-bit RGB). * gst-libs/gst/riff/riff-read.c: (gst_riff_read_strf_vids_with_data): Oops, fix strf_data reading bug. * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): Use a non-NULL tag. * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): Time for hacks. Sorry Dave. At least one quicktime movie (a trailer) that I've encountered contains multiple video tracks. One of those is the actual video track, the other are one-frame tracks (images). Unfortunately, the number of frames according to the trak header is 1 for each, so that doesn't help. So instead, I look at the duration and discard tracks with a duration shorter than 20% of the length of the stream. Better than nothing.