Commit graph

152 commits

Author SHA1 Message Date
Tim-Philipp Müller
12aed9b96e gst/avi/gstavidemux.c: Invert DIB images again (see #132341).
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).
2005-11-15 12:16:00 +00:00
Edward Hervey
ad2f2ea24b gst/avi/gstavidemux.*: Yeah, implement proper seeking. Exact seeking and 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.
2005-11-11 16:48:58 +00:00
Tim-Philipp Müller
fb1c3904f7 gst/avi/gstavidemux.c: No need to take the STREAM_LOCK in the loop function. 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.
2005-11-07 10:31:32 +00:00
Wim Taymans
bee54790e7 Set correct stream_time in newsegment event. avi can also handle a duration 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.
2005-10-21 16:15:57 +00:00
Wim Taymans
9f4609665a gst/avi/gstavidemux.c: Correctly fill in the stream time.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek):
Correctly fill in the stream time.
2005-10-20 11:39:40 +00:00
Wim Taymans
ba7ee6ae6c API change fix.
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.
2005-10-19 15:57:04 +00:00
Wim Taymans
3a6dd6c30c newsegment API update.
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.
2005-10-11 16:33:08 +00:00
Tim-Philipp Müller
41af36aa2f gst/avi/gstavidemux.c: Don't crash when encountering a stream with an 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.
2005-09-26 13:06:27 +00:00
Andy Wingo
7ebd7b97d4 All plugins updated for element state changes.
Original commit message from CVS:
2005-09-02  Andy Wingo  <wingo@pobox.com>

* All plugins updated for element state changes.
2005-09-02 15:44:50 +00:00
Ronald S. Bultje
51a630d417 gst/: Uncomment metadata and codec-name handling.
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.
2005-08-16 16:30:23 +00:00
Tim-Philipp Müller
f6d8dee68d gst/avi/gstavidemux.c: Fix AVI header parsing: add missing break statement after
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).
2005-08-09 14:40:02 +00:00
Ronald S. Bultje
139e82bd8b gst/avi/gstavidemux.c: Fix seeking (or, well, fix threading issue where a 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).
2005-08-09 12:33:21 +00:00
Ronald S. Bultje
0d1f52616a gst/avi/gstavidemux.c: Mixing binary and logical operators is not going to 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.
2005-08-09 12:22:12 +00:00
Edward Hervey
6af187c535 gst/avi/gstavidemux.c: You need to allocatate (len+1) characters to store a 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.
2005-08-04 18:31:12 +00:00
Wim Taymans
c50893f784 Various event updates and cleanups.
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.
2005-07-27 18:37:25 +00:00
Wim Taymans
f6f3418b19 ext/mad/gstmad.c: Add convert function for proper timestamp calculations.
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.
2005-07-16 16:43:53 +00:00
Wim Taymans
2d3657a1ba gst/base/gstbasesrc.c: Allow subclasses to implement their own negotiation.
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.
2005-07-07 08:21:41 +00:00
Jan Schmidt
53b2e78562 Replace GST_PLUGINS_LIBS_* with GST_PLUGINS_BASE_*
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
2005-07-01 08:10:56 +00:00
Ronald S. Bultje
db20692b12 gst/avi/gstavidemux.c: Compiler pains.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
Compiler pains.
2005-06-30 14:28:14 +00:00
Ronald S. Bultje
aa254e4374 gst/avi/: Port from -THREADED to HEAD, and fix for latest API changes of the 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.
2005-06-30 09:00:36 +00:00
Gergely Nagy
ae541a6e16 gst/avi/gstavidemux.c: Declare variables at beginning of block and make 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.
2005-02-17 19:21:42 +00:00
Ronald S. Bultje
aa4bcc482b gst/avi/gstavidemux.*: Invert DIB images. Fixes #132341.
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.
2005-01-29 15:47:18 +00:00
Ronald S. Bultje
413da5f277 Allow seeks on audio pad, make mad forward those (#164826).
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).
2005-01-27 10:14:22 +00:00
Thomas Vander Stichele
d78e43f5c5 debugging
Original commit message from CVS:
debugging
2005-01-13 17:11:08 +00:00
Ronald S. Bultje
5024a7c5b6 gst-libs/gst/riff/riff-read.c: Don't bail on unknown events.
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.
2005-01-10 16:09:25 +00:00
Ronald S. Bultje
889e28ef62 gst/avi/gstavidemux.c: Add some more debug. Fix logic error when setting 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.
2004-12-23 11:44:03 +00:00
Ronald S. Bultje
f0def31bea gst/avi/gstavidemux.c: Add some debugging. Better detection of broken 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.
2004-12-23 10:53:27 +00:00
Ronald S. Bultje
a4bf155817 gst/avi/gstavidemux.c: Work for truncated (unfinished download etc.) files. 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.
2004-12-18 19:36:59 +00:00
Ronald S. Bultje
fd2b4713a6 ext/a52dec/gsta52dec.*: Do something useful with timestamps. Make 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.
2004-12-06 10:28:13 +00:00
Ronald S. Bultje
9506620fe2 gst/avi/gstavidemux.c: Fix quite humiliating bug in omitting 0-sized index 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.
2004-11-29 12:41:03 +00:00
Ronald S. Bultje
f7ea1932ed ext/gnomevfs/gstgnomevfssrc.c: Some debug.
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.
2004-10-12 12:29:45 +00:00
Ronald S. Bultje
59e9ed33fe gst/avi/gstavidemux.c: OK, so the original code was too strict. It makes 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.
2004-10-09 19:33:21 +00:00
Ronald S. Bultje
5dab8b214f gst/avi/gstavidemux.c: Prevent overwrite of size member. Makes audio sound crappy.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
Prevent overwrite of size member. Makes audio sound crappy.
2004-10-05 15:28:08 +00:00
Ronald S. Bultje
9712010d44 gst/avi/gstavidemux.c: There was something wrong with the index massaging.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
There was something wrong with the index massaging.
2004-10-04 17:29:27 +00:00
Ronald S. Bultje
d2ba80e45e gst/avi/gstavidemux.c: Fix seeking in some files. All this code is no longer 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.
2004-10-04 16:48:26 +00:00
Ronald S. Bultje
3f20d7f4b8 gst/avi/gstavidemux.c: Improve allocation, cutting and sorting of the index. 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.
2004-10-04 13:32:20 +00:00
Ronald S. Bultje
993092788c gst-libs/gst/riff/riff-media.c: Add wing commander format mimetype/fourccs.
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.
2004-10-02 20:27:04 +00:00
Ronald S. Bultje
89e2912bad gst-libs/gst/riff/riff-media.c: Add DIB fourcc (raw, palettized 8-bit RGB).
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.
2004-10-02 14:10:19 +00:00
Ronald S. Bultje
ea118a8d64 ext/flac/gstflacdec.c: Only return true if we actually filled something in. Prevents player applications from showing...
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flacdec_src_query):
Only return true if we actually filled something in. Prevents
player applications from showing a random length for flac files.
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init),
(gst_riff_read_use_event), (gst_riff_read_handle_event),
(gst_riff_read_seek), (gst_riff_read_skip), (gst_riff_read_strh),
(gst_riff_read_strf_vids_with_data),
(gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_iavs):
OK, ok, so I implemented event handling. Apparently it's normal
that we receive random events at random points without asking
for it.
* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
(gst_avi_demux_handle_src_event), (gst_avi_demux_stream_index),
(gst_avi_demux_sync), (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/gstavidemux.h:
Implement non-lineair chunk handling and subchunk processing.
The first solves playback of AVI files where the audio and video
data of individual buffers that we read are not synchronized.
This should not happen according to the wonderful AVI specs, but
of course it does happen in reality. It is also a prerequisite for
the second. Subchunk processing allows us to cut chunks in small
pieces and process each of these pieces separately. This is
required because I've seen several AVI files with incredibly large
audio chunks, even some files with only one audio chunk for the
whole file. This allows for proper playback including seeking.
This patch is supposed to fix all AVI A/V sync issues.
* gst/flx/gstflxdec.c: (gst_flxdec_class_init),
(flx_decode_chunks), (flx_decode_color), (gst_flxdec_loop):
Work.
* gst/modplug/gstmodplug.cc:
Proper return value setting for the query() function.
* gst/playback/gstplaybasebin.c: (setup_source):
Being in non-playing state (after, e.g., EOS) is not necessarily
a bad thing. Allow for that. This fixes playback of short files.
They don't actually playback fully now, because the clock already
runs. This means that small files (<500kB) with a small length
(<2sec) will still not or barely play. Other files, such as mod
or flx, will work correctly, however.
2004-09-29 09:45:40 +00:00
Ronald S. Bultje
40cec75c3f ext/dirac/: Do something. Don't actually know if this works because I don't have a demuxer yet.
Original commit message from CVS:
* ext/dirac/Makefile.am:
* ext/dirac/gstdirac.cc:
* ext/dirac/gstdiracdec.cc:
* ext/dirac/gstdiracdec.h:
Do something. Don't actually know if this works because I don't
have a demuxer yet.
* ext/gsm/gstgsmdec.c: (gst_gsmdec_getcaps):
Add channels=1 to caps returned from _getcaps().
* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_get_type),
(gst_ogm_video_parse_get_type), (gst_ogm_audio_parse_base_init),
(gst_ogm_video_parse_base_init), (gst_ogm_parse_init),
(gst_ogm_audio_parse_init), (gst_ogm_video_parse_init),
(gst_ogm_parse_sink_convert), (gst_ogm_parse_chain),
(gst_ogm_parse_change_state):
Separate between audio/video so ogmaudioparse actually uses the
audio pad templates. Both audio and video work now, including
autoplugging. Also use sometimes-srcpad hack.
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek):
Handle events better. Don't hang on infinite loops.
* gst/avi/gstavidemux.c: (gst_avi_demux_class_init),
(gst_avi_demux_init), (gst_avi_demux_reset),
(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
(gst_avi_demux_stream_header), (gst_avi_demux_stream_data),
(gst_avi_demux_change_state):
* gst/avi/gstavidemux.h:
Improve A/V sync. Still not perfect.
* gst/matroska/ebml-read.c: (gst_ebml_read_seek),
(gst_ebml_read_skip):
Handle events better.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event),
(gst_qtdemux_loop_header), (qtdemux_parse_trak),
(qtdemux_audio_caps):
Add IMA4. Improve event handling. Save offset after a seek when
the headers are at the end of the file so that we don't end up in
an infinite loop.
* gst/typefind/gsttypefindfunctions.c: (qt_type_find):
Add low-priority typefind support for files with no length.
2004-09-23 14:59:22 +00:00
Ronald S. Bultje
a15e93fc3d gst/avi/gstavidemux.c: Just hardcode for raw audio then. AVI audio sucks.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
(gst_avi_demux_stream_data):
Just hardcode for raw audio then. AVI audio sucks.
2004-09-15 20:06:15 +00:00
Ronald S. Bultje
9e36d10e82 gst/avi/gstavidemux.c: Try to fix a/v sync issues.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
(gst_avi_demux_stream_data):
Try to fix a/v sync issues.
2004-09-15 19:31:47 +00:00
Ronald S. Bultje
3bae21ef61 gst/avi/gstavidemux.*: Fix for compressed audio (mp3) timestamp generation. How did this ever work?
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
(gst_avi_demux_add_stream), (gst_avi_demux_stream_data):
* gst/avi/gstavidemux.h:
Fix for compressed audio (mp3) timestamp generation. How did this
ever work?
2004-09-15 17:14:34 +00:00
Wim Taymans
dfb55453e4 gst/: Make sure we don't create 0 sized subbufers in riff-read.
Original commit message from CVS:
* gst-libs/gst/riff/riff-read.c:
(gst_riff_read_strf_vids_with_data),
(gst_riff_read_strf_auds_with_data):
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
(gst_avi_demux_add_stream), (gst_avi_demux_stream_header):
Make sure we don't create 0 sized subbufers in riff-read.
Signal the no more pads signal after reading the avi header.
2004-07-16 10:50:49 +00:00
Wim Taymans
872a055c55 gst/: Set codec_data on caps for avidemuxer.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_audio_caps_with_data),
(gst_riff_create_audio_caps),
(gst_riff_create_audio_template_caps):
* gst-libs/gst/riff/riff-media.h:
* gst-libs/gst/riff/riff-read.c:
(gst_riff_read_strf_vids_with_data),
(gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_auds):
* gst-libs/gst/riff/riff-read.h:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
(gst_avi_demux_add_stream):
Set codec_data on caps for avidemuxer.
2004-07-13 10:24:29 +00:00
Wim Taymans
712347f136 gst/avi/gstavidemux.c: Fix potential division by zero error and hopefully get the position query right to get correct...
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query):
Fix potential division by zero error and hopefully get
the position query right to get correct timestamps on avi
audio.
2004-05-24 15:24:05 +00:00
Stéphane Loeuillet
ec8a1bb76c first batch : remove ',' at end of enums as they could confuse older gcc, foreign compilers (forte) and gtk-doc
Original commit message from CVS:

first batch :
remove ',' at end of enums as they could confuse older gcc, foreign compilers (forte) and gtk-doc
2004-05-21 22:39:30 +00:00
Ronald S. Bultje
26fe995a13 gst/: Add MS RLE support. I added some functions to read out strf chunks into strf chunks and the data behind it. Thi...
Original commit message from CVS:
reviewed by: <delete if not using a buddy>
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_video_caps_with_data),
(gst_riff_create_video_caps), (gst_riff_create_audio_caps),
(gst_riff_create_video_template_caps),
(gst_riff_create_audio_template_caps):
* gst-libs/gst/riff/riff-media.h:
* gst-libs/gst/riff/riff-read.c:
(gst_riff_read_strf_vids_with_data), (gst_riff_read_strf_vids):
* gst-libs/gst/riff/riff-read.h:
* gst/avi/gstavidemux.c: (gst_avi_demux_add_stream):
Add MS RLE support. I added some functions to read out strf chunks
into strf chunks and the data behind it. This is usually color
palettes (as in RLE, but also in 8-bit RGB). Also use those during
caps creation. Lastly, add ADPCM (similar to wavparse - which
should eventually be rifflib based).
* gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init),
(gst_matroska_demux_init), (gst_matroska_demux_reset):
* gst/matroska/matroska-demux.h:
Remove placeholders for some prehistoric tagging system. Didn't add
support for any tag system really anyway.
* gst/qtdemux/qtdemux.c:
Add support for audio/x-m4a (MPEG-4) through spider.
* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt),
(gst_wavparse_loop):
ADPCM support (#135862). Increase max. buffer size because we
cannot split buffers for ADPCM (screws references) and I've seen
files with 2048 byte chunks. 4096 seems safe for now.
2004-04-16 01:20:44 +00:00
Sebastien Cote
23222fefd2 gst/avi/gstavidemux.c: Fix memleak. patch from Sebastien Cote (bug #139958)
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_reset): Fix memleak.
patch from Sebastien Cote (bug #139958)
2004-04-13 21:34:29 +00:00
Ronald S. Bultje
d5153a8691 gst/avi/gstavidemux.c: Handle JUNK chunks inside data section. Prevents warnings.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_stream_data):
Handle JUNK chunks inside data section. Prevents warnings.
2004-04-11 22:09:26 +00:00