Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter):
We sometimes need parsers for playback, so add those too.
Original commit message from CVS:
patch by: Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst/playback/gstplaybasebin.c:
Fix unplayable files error handling. Fixes#158365
Original commit message from CVS:
reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
Fix for gcc-2.95 (fixes#158221).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element):
Re-add clock distribution hack (until new core is released).
Fixes#158125.
Original commit message from CVS:
* gst/ffmpegcolorspace/imgconvert.c: (yuv420p_to_yuv422):
Actually test for odd width/height rather than testing whether
a temporary variable that was 0 before we subtracted 1 is now
not equal to zero (which it always is).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find):
Disable halfway-seek for pending release (since it needs a new
core release).
Original commit message from CVS:
* gst/playback/README:
* gst/playback/gstplaybasebin.c: (group_destroy), (group_is_muted),
(add_stream), (unknown_type), (add_element_stream), (no_more_pads),
(probe_triggered), (preroll_unlinked), (new_decoded_pad),
(gst_play_base_bin_change_state), (gst_play_base_bin_found_tag):
* gst/playback/gstplaybin.c: (gen_vis_element), (remove_sinks),
(setup_sinks):
* gst/playback/gststreaminfo.c: (gst_stream_info_set_mute),
(gst_stream_info_is_mute), (gst_stream_info_set_property):
* gst/playback/gststreaminfo.h:
Updated README.
Only switch groups if all streams have muted (EOSed).
Send Tags in sync with the stream playback instead of in
the playback/preroll phase.
Some cleanups, free the fakesrc elements.
Original commit message from CVS:
* gst/videotestsrc/videotestsrc.c: (paint_setup_Y41B),
(paint_hline_Y41B), (paint_setup_Y42B), (paint_hline_Y42B):
Added two more colorspaces.
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpegcsp_avpicture_fill):
* gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size),
(avpicture_alloc):
* gst/ffmpegcolorspace/imgconvert_template.h:
Use correct _fill function to get correct strides.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(try_to_link_1), (get_our_ghost_pad), (remove_element_chain),
(unlinked), (no_more_pads), (close_link):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(unknown_type), (add_element_stream), (new_decoded_pad),
(removed_decoded_pad), (setup_source):
* gst/playback/gststreaminfo.c: (gst_stream_info_get_type),
(gst_stream_info_class_init), (gst_stream_info_init),
(gst_stream_info_new), (gst_stream_info_dispose),
(stream_info_mute_pad), (gst_stream_info_set_property),
(gst_stream_info_get_property):
* gst/playback/gststreaminfo.h:
Fix playback of multiple files.
a slightly different approach to handling dynamic pad removals.
This one only looks at pads that we have linked.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(get_unconnected_element), (remove_starting_from), (pad_removed),
(close_link):
Implement support for dynamic pad changing. We listen to "live"
pad removals (i.e. while playing) and re-setup autoplugging
after that. Playbasebin/playbin need some more work for this
to finally work, but decodebin supports (and replugs) chained
ogg now.
Original commit message from CVS:
2004-10-21 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/tcp/gsttcpserversink.c:
(gst_tcpserversink_handle_server_read),
(gst_tcpserversink_init_send):
Zero some variables first (need for accept not to return EINVAL)
Original commit message from CVS:
* configure.ac: update for swfdec-0.3 and liboil-0.2
* ext/swfdec/gstswfdec.c: update for swfdec-0.3
* ext/swfdec/gstswfdec.h: same
* gst/videofilter/gstvideobalance.c: update for liboil-0.2
* gst/videotestsrc/videotestsrc.c: same
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
(gst_multifdsink_remove), (gst_multifdsink_remove_client_link),
(is_sync_frame), (gst_multifdsink_new_client),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
(gst_multifdsink_handle_clients), (gst_multifdsink_change_state):
Turn warnings into info.
Don't allow a state change in the streaming thread.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_vis_element), (remove_sinks), (setup_sinks):
Added vis plugin support, need to configure the vis
element to activate it.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
Cleanup the previous pipeline a little earlier for the
case that a source element provides raw data.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source),
(gst_play_base_bin_change_state):
Actually clean up streaminfo if output fails. This would trigger
if, for example, there was no CD in the drive. No preroll, so
a streaminfo structure is created, but the subsequent state change
of the thread fails.
* gst/playback/gstplaybin.c: (gst_play_bin_change_state):
Don't change state if parent failed.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_init), (gst_play_bin_get_property), (handoff),
(gen_video_element), (remove_sinks):
Add small bits of code for screenshot handling.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_set_property),
(gen_video_element), (gen_audio_element), (setup_sinks):
Don't assume the user provided sinks are named "sink"...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gen_preroll_element),
(unknown_type), (setup_source), (gst_play_base_bin_remove_element),
(gst_play_base_bin_link_stream):
Do not try to autoplug sources that generate raw streams like
cdparanoia.
disconnect the preroll overrun signal when we don't need it anymore.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (play_base_bin_mute_pad),
(gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream):
* gst/playback/gstplaybin.c: (setup_sinks):
Implement muting/unmuting of streams, mute streams that are not
used.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(find_compatibles), (close_pad_link), (try_to_link_1), (new_pad),
(no_more_pads), (close_link), (type_found):
* gst/playback/gstplaybasebin.c: (new_decoded_pad):
* gst/playback/gstplaybin.c: (gen_video_element):
Do not signal the no_more_pads after the first pad when
we are plugging a non dynamic element with multiple
output pads (like swfdec, dvdec, ...).
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(find_compatibles), (close_pad_link), (try_to_link_1),
(no_more_pads), (close_link), (type_found):
* gst/playback/gstplaybasebin.c: (new_decoded_pad):
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element):
Set state on newly added element to READY so that negotiation
can happen ASAP.
Addes some more debug info.
Do not try to plug pads with multiple caps structures or ANY
because it is too dangerous since we do not do dynamic
replugging.
Original commit message from CVS:
* gst/playback/README:
* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),
(gst_decode_bin_init), (find_compatibles), (close_pad_link),
(try_to_link_1), (no_more_pads), (close_link), (type_found):
Add some debug info to decodebin, update README
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.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
(gst_multifdsink_remove), (gst_multifdsink_remove_client_link),
(is_sync_frame), (gst_multifdsink_client_queue_buffer),
(gst_multifdsink_new_client),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
(gst_multifdsink_handle_clients):
* gst/tcp/gstmultifdsink.h:
Make syncing to keyframes actually work for new clients and lagging
clients.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (new_decoded_pad):
Only signal the no_more_pads signal when we have
added the stream to our list.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (remove_prerolls),
(new_decoded_pad):
* gst/playback/gstplaybasebin.h:
* gst/playback/gstplaybin.c: (setup_sinks):
Don't try to preroll or decode more than one audio/video
track.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state):
Throw error if we failed to find a suitable output. This should
throw an error if we successfully set up a pipeline (e.g. because
we recognized a media file) but found no decodable streams in it
(e.g. because it contains only media stream types for which we
have no decoders, or because it's not a media type).
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.
Original commit message from CVS:
* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_getcaps):
Correct caps negotiation
* gst/volume/gstvolume.c: (volume_chain_float),
(volume_chain_int16):
Modify debug output to be little more informative
* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_destroy):
Add XSync calls after detaching from the shared memory segment to
avoid a crash.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (_read_var_length), (_read_guid),
(gst_asf_demux_process_segment), (gst_asf_demux_handle_data),
(gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event):
Prevent infinite loops. More correct error reporting.
* gst/auparse/gstauparse.c: (gst_auparse_chain):
Error out if negotiation fails.
* gst/playback/gstplaybasebin.c: (setup_source),
(gst_play_base_bin_change_state), (gst_play_base_bin_error),
(gst_play_base_bin_found_tag):
Error/tag forwarding. Pre-roll fixes for source errors on state
changes (e.g. "file does not exist") to prevent hangs.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_check_caps_reset),
(gst_mad_change_state):
Allow for mp3 rate/channels changes. However, only very
conservatively. Reason that we *have* to enable this is smiply
because the mad find_sync() function is not good enough, it will
regularly sync on random data as valid frames and therefore make
us provide random caps as *final* caps of the stream. The best fix
I could think of is to simply require several of the same stream
changes in a row before we change caps.
The actual testcase that works now is #
* ext/ogg/Makefile.am:
* ext/ogg/gstogg.c: (plugin_init):
* ext/ogg/gstogmparse.c:
OGM support (video only for now; I need an audio sample file).
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_process_stream), (gst_asf_demux_video_caps),
(gst_asf_demux_add_video_stream):
WMV extradata.
* gst/playback/gstplaybasebin.c: (unknown_type):
Don't error out on single unknown-types after all. It's wrong.
If we found type of video and audio but not of a subtitle stream,
it will still error out (which is unwanted). Will find a better fix
later on.
* gst/typefind/gsttypefindfunctions.c: (ogmvideo_type_find),
(ogmaudio_type_find), (plugin_init):
OGM support.
Original commit message from CVS:
* gst/tcp/gstfdset.c: (gst_fdset_fd_has_closed),
(gst_fdset_fd_has_error), (gst_fdset_fd_can_read),
(gst_fdset_fd_can_write), (gst_fdset_wait):
* gst/tcp/gstmultifdsink.c: (gst_client_status_get_type),
(gst_multifdsink_init), (gst_multifdsink_add),
(gst_multifdsink_remove), (gst_multifdsink_get_stats),
(gst_multifdsink_remove_client_link),
(gst_multifdsink_client_queue_buffer),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_recover_client), (gst_multifdsink_handle_clients),
(gst_multifdsink_close), (gst_multifdsink_change_state):
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
(gst_tcpserversink_removed):
Small cleanups in fdset.c
Use a hastable to map fd to the client structure for faster
lookup in _remove and get_stats.
Added virtual function to close the fds.
Handle clients even when the select/poll call was unblocked because
of a command.
Implement syncing to keyframe in the recovery procedure.
Original commit message from CVS:
* configure.ac: remove NASM check, since we don't use it. Update
dirac check to 0.4
* ext/dirac/gstdiracdec.cc: update to current 0.4 API
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
Initialized variables.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
(gst_qtdemux_loop_header), (qtdemux_parse), (qtdemux_parse_trak),
(gst_qtdemux_handle_esds), (qtdemux_audio_caps): Fix seeking, add
SVQ3 format
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_remove_client_link),
(gst_multifdsink_handle_clients), (gst_multifdsink_change_state):
Don't close the fd in multifdsink as we didn't open it in the
first place. Some cleanups.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (state_change), (setup_source),
(gst_play_base_bin_change_state):
Handle the case where we failed to setup a clear pipeline. This
will throw an error (or EOS, another nice case) and if you don't
catch that, the app will wait for the signal forever (and thus
hang).
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssink.c:
(gst_gnomevfssink_uri_get_protocols):
* ext/gnomevfs/gstgnomevfssrc.c:
(gst_gnomevfssrc_uri_get_protocols):
* ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris):
* ext/gnomevfs/gstgnomevfsuri.h:
Use _uri_new() instead of _open(), so it doesn't take as long and
Christophe's computer won't hang.
* gst/playback/gstplaybasebin.c: (unknown_type):
Throw error on unknown media type, so apps actually display it.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (queue_overrun), (no_more_pads),
(setup_source), (gst_play_base_bin_set_property),
(gst_play_base_bin_add_element):
* gst/playback/gstplaybin.c: (gst_play_bin_send_event):
Some more work on making sure seeking pauses the pipeline and
that changing the uri actually does something.
Original commit message from CVS:
* gst/tcp/gstfdset.c: (gst_fdset_wait):
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_close):
* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init_send),
(gst_tcpserversink_close):
Be a bit more paranoid when freeing memory.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c:
(gst_play_base_bin_dispose), (gst_play_base_bin_set_property):
Handle double disposals, and proper change of URIs.
Original commit message from CVS:
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_update),
(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record),
(gst_alsa_mixer_set_option), (gst_alsa_mixer_get_option):
Update mixer (to sync with other sessions) if we try to obtain
a new value. This makes alsamixer work accross applications.
* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time):
Only call sync functions if we're running, else alsalib asserts.
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query):
Sometimes fails to compile. Possibly a gcc bug.
* gst/playback/gstplaybin.c: (gen_video_element),
(gen_audio_element):
Add a reference to an application-provided object, because we lose
this same reference if we add it to the bin. If we don't do this,
we can only use this object once and thus crash if we go from
ready to playing, back to ready and back to playing again.
Also add an audioscale element because several cheap soundcards -
like mine - don't support all samplerates.
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
(gst_ximagesink_xcontext_clear), (gst_ximagesink_change_state):
Fix wrong order or PAR calls. Makes automatically obtained PAR
from the X server atually being used.
Original commit message from CVS:
* gst/tcp/gstfdset.c: (gst_fdset_free), (gst_fdset_set_mode),
(gst_fdset_get_mode), (gst_fdset_add_fd), (gst_fdset_remove_fd),
(gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read),
(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
(gst_fdset_wait):
* gst/tcp/gstfdset.h:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
(gst_multifdsink_client_queue_buffer),
(gst_multifdsink_handle_client_write):
* gst/tcp/gstmultifdsink.h:
Some extra checks in gstfdset.
Only use send() when the fd is a socket. Don't try to
read from write only fds.
Original commit message from CVS:
* gst/tcp/gstfdset.c: (ensure_size), (gst_fdset_wait):
Realloc test fdset in the lock and right before starting
the poll call. Bump the limit to 4096.
Original commit message from CVS:
2004-08-17 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/audioscale/gstaudioscale.c:
* gst/audioscale/gstaudioscale.h:
made audioscale resample from any sample rate to any sample rate
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
(gst_multifdsink_init), (gst_multifdsink_add),
(gst_multifdsink_client_queue_buffer),
(gst_multifdsink_set_property), (gst_multifdsink_get_property):
* gst/tcp/gstmultifdsink.h:
Added option to send a keyframe to clients as the first buffer.
Make timeout property writable.
Original commit message from CVS:
* gst/tcp/gstfdset.c: (ensure_size), (gst_fdset_new),
(gst_fdset_add_fd), (gst_fdset_remove_fd),
(gst_fdset_fd_has_closed), (gst_fdset_fd_has_error),
(gst_fdset_fd_can_read), (gst_fdset_fd_can_write),
(gst_fdset_wait):
Make sure the pollfds are not changed when the poll call is
running. Protect against array out of bounds.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_unit_type_get_type),
(gst_client_status_get_type), (gst_multifdsink_class_init),
(gst_multifdsink_init), (gst_multifdsink_remove_client_link),
(gst_multifdsink_handle_client_read),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
(gst_multifdsink_handle_clients), (gst_multifdsink_set_property),
(gst_multifdsink_get_property):
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcp-marshal.list:
Starting to prepare for specifying buffer time in other units
than buffers. Expose remove reason in signal.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_add),
(gst_multifdsink_remove), (gst_multifdsink_clear),
(gst_multifdsink_remove_client_link),
(gst_multifdsink_handle_client_read),
(gst_multifdsink_client_queue_data),
(gst_multifdsink_client_queue_buffer),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients),
(gst_multifdsink_chain), (gst_multifdsink_close):
* gst/tcp/gstmultifdsink.h:
Added more debugging info. Changed the way clients are
removed from the lists. Fixed a bug where a bad file descriptor
could cause many clients to be removed.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
(gst_multifdsink_add), (gst_multifdsink_get_stats),
(gst_multifdsink_client_remove),
(gst_multifdsink_handle_client_read),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
Do a bit more logging, make the client_read code more robust.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
(gst_multifdsink_add), (gst_multifdsink_get_stats),
(gst_multifdsink_client_remove),
(gst_multifdsink_handle_client_read),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
Make sure we don't try to read more from a client that what
ioctl says us or we deadlock.
Original commit message from CVS:
* gst/videotestsrc/gstvideotestsrc.c:
(gst_videotestsrc_get_capslist), (generate_capslist),
(plugin_init):
generate the list of supported caps at startup and reuse it instead
of always generating it
Original commit message from CVS:
* gst/audioscale/gstaudioscale.c:
- fix templates to only support S16, it's the only format that works
- make caps nego code use try_set_caps_nonfixed and fixation instead
of try_set_caps twice, which is not nice for autopluggers
- change rank to secondary, so autopluggers can pick it up after
audioconvert
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
(gst_multifdsink_add), (gst_multifdsink_remove),
(gst_multifdsink_clear), (gst_multifdsink_get_stats),
(gst_multifdsink_client_remove),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients):
* gst/tcp/gstmultifdsink.h:
Recover from a select with a bad file descriptor by removing
the client.
Original commit message from CVS:
* gst/tcp/gsttcpclientsrc.c (gst_tcpclientsrc_get): Make sure that
the pad is negotiated.
* gst/ffmpegcolorspace/gstffmpegcolorspace.c (gst_ffmpegcolorspace_chain): Ditto
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (plugin_init): Add typefind
for ELF files, since they can easily be recognized as audio/mpeg.
(bug #147441)
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
(gst_multifdsink_add), (gst_multifdsink_get_stats),
(gst_multifdsink_client_remove),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_queue_buffer):
* gst/tcp/gstmultifdsink.h:
More multifdsink stats. Avoid deadlock by releasing locks
before sending out a signal.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init),
(gst_multifdsink_init), (gst_multifdsink_add),
(gst_multifdsink_client_remove),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_queue_buffer), (gst_multifdsink_chain),
(gst_multifdsink_set_property), (gst_multifdsink_get_property),
(gst_multifdsink_init_send):
* gst/tcp/gstmultifdsink.h:
Added more stats, added timeout for a client, fixed some typos
and added some comments.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_video_caps_with_data):
mp42/mp43 (no caps) exist too.
* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps):
Set pixel_width/height; we've got them in-caps.
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
* gst/wavparse/gstwavparse.c: (plugin_init):
Both are valid primary.
* sys/oss/gstossmixer.c:
Remove i18n hack and enable translations.
Original commit message from CVS:
2004-07-11 Andy Wingo <wingo@pobox.com>
* gst/audioconvert/gstaudioconvert.c (gst_audio_convert_link): For
float, "any" caps -> buffer_frames=[0,MAX].
* gst/interleave/interleave.c (interleave_getcaps): Seems the core
doesn't intersect our caps with the template any more. Do it
ourselves.
(interleave_buffered_loop): Use g_newa instead of malloc/free.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type),
(gst_multifdsink_class_init), (gst_multifdsink_add),
(gst_multifdsink_remove), (gst_multifdsink_clear),
(gst_multifdsink_client_remove),
(gst_multifdsink_handle_client_read),
(gst_multifdsink_client_queue_data),
(gst_multifdsink_client_queue_caps),
(gst_multifdsink_client_queue_buffer),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer),
(gst_multifdsink_handle_clients), (gst_multifdsink_thread),
(gst_multifdsink_init_send), (gst_multifdsink_close):
Fix wrong GList iteration that could crash the server when
more then 2 clients disconnect at the same time. Read all the
pending commands in one batch to recover from command storms under
very heavy load.
Original commit message from CVS:
* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
(gst_tcpserversink_init), (gst_tcpserversink_handle_server_read),
(gst_tcpserversink_client_remove),
(gst_tcpserversink_handle_client_read),
(gst_tcpserversink_client_queue_data),
(gst_tcpserversink_client_queue_caps),
(gst_tcpserversink_client_queue_buffer),
(gst_tcpserversink_handle_client_write),
(gst_tcpserversink_queue_buffer),
(gst_tcpserversink_handle_clients), (gst_tcpserversink_thread),
(gst_tcpserversink_chain), (gst_tcpserversink_set_property),
(gst_tcpserversink_get_property), (gst_tcpserversink_init_send),
(gst_tcpserversink_close):
* gst/tcp/gsttcpserversink.h:
Serversink rewrite. Really do non blocking writes to clients and
maintain an internal queue to handle slower clients while not
disturbing fast clients.
Original commit message from CVS:
* gst/audiorate/gstaudiorate.c: (gst_audiorate_link),
(gst_audiorate_init), (gst_audiorate_chain),
(gst_audiorate_set_property), (gst_audiorate_get_property):
* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
(gst_videorate_chain):
Added some logging, fixed an overflow bug in videorate.
Original commit message from CVS:
* gst-libs/gst/colorbalance/Makefile.am:
* gst-libs/gst/mixer/Makefile.am:
* gst-libs/gst/play/Makefile.am:
* gst-libs/gst/tuner/Makefile.am:
* gst/tcp/Makefile.am:
* sys/dxr3/Makefile.am:
don't include -enumtypes.[ch] or -marshal.[ch] files in the disted
tarball.
Also add all *.list files that were missing.
* Makefile.am:
add a distcheck hook to ensure the above doesn't happen again.
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_videorate_class_init),
(gst_videorate_init), (gst_videorate_chain),
(gst_videorate_set_property), (gst_videorate_get_property):
Add property to make videorate silent.
Add property to prefer new frames over old ones.
Original commit message from CVS:
* ext/dvdnav/gst-dvd: Grab the gconf key from the right spot
* gst/debug/gstnavseek.c: (gst_navseek_init),
(gst_navseek_segseek), (gst_navseek_handle_src_event),
(gst_navseek_chain):
* gst/debug/gstnavseek.h: Add 's', 'e' and 'l' keypresses to navseek
to define the start,end and loop parameters of a segment seek.
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_init),
(gst_videotestsrc_get_event_masks),
(gst_videotestsrc_handle_src_event), (gst_videotestsrc_get):
* gst/videotestsrc/gstvideotestsrc.h:
Add seeking support to videotestsrc
Initialise the timestamp_offset variable.
Original commit message from CVS:
* gst/ffmpegcolorspace/imgconvert.c: (img_convert):
Patch 1.3 broke the ordering of the colorspace info and
made the plugin basically work by coincidence, reodered
the info.
Original commit message from CVS:
2004-06-12 Christophe Fergeau <teuf@gnome.org>
* gst/tags/gstvorbistag.c: replaced a g_warning which I added in my
previous commit with GST_DEBUG
Original commit message from CVS:
2004-06-12 Zaheer Abbas Merali <zaheerabbas@merali.org>
* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init_send):
* gst/tcp/gsttcpclientsink.h:
* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init_receive):
* gst/tcp/gsttcpclientsrc.h:
* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init),
(gst_tcpserversink_handle_server_read),
(gst_tcpserversink_init_send):
* gst/tcp/gsttcpserversink.h:
* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive):
* gst/tcp/gsttcpserversrc.h:
Modified the tcp plugins so they are portable (IPv4,IPv6, any future
version of IP)
Original commit message from CVS:
2004-06-10 Christophe Fergeau <teuf@gnome.org>
* gst/tags/gstvorbistag.c: (gst_vorbis_tag_add): make sure parsed
vorbis comments are properly encoded in UTF-8 before adding them
to a GstTagList
Original commit message from CVS:
reviewed by Benjamin Otte <otte@gnome.org>
* gst/adder/gstadder.c: (gst_adder_loop):
properly error out when no negotiation has happened yet. (fixes
#143032)
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c: that's
G_HAVE_GNUC_VARARGS, not G_HAVE_GNU_VARARGS. Should fix compile
problems on several systems.
Original commit message from CVS:
* gst/tcp/gsttcp.c: portability (Solaris 10/FreeBSD)
* gst/tcp/gsttcpclientsrc.h: idem
- define MSG_NOSIGNAL if not done
- include unistd.h for off_t
(fixes#143749)
patch by Andrew Turner <zxombie@hotpop.com>
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
fixate nicely even when the peer is not negotiating
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_parse_caps):
make sure we don't allow depth > width
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate):
fixate endianness to G_BYTE_ORDER as default
* gst/audioscale/gstaudioscale.c:
we don't handle another endianness as host-endianness
Original commit message from CVS:
* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_sinkconnect),
(gst_oggvorbisenc_setup):
properly fail when we can't setup the vorbis encoder due to
unsupported settings
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_sinkconnect),
(gst_vorbisenc_setup):
same
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
fix case where warnings occured when one pad was unlinked while the
other's link function was called
Original commit message from CVS:
* gst/videoscale/videoscale.c: (gst_videoscale_scale_nearest),
(gst_videoscale_scale_nearest_str2),
(gst_videoscale_scale_nearest_str4),
(gst_videoscale_scale_nearest_32bit),
(gst_videoscale_scale_nearest_24bit),
(gst_videoscale_scale_nearest_16bit):
Fix the scaling algorithm and avoid a buffer overflow.
removed the while loop in the scaling function as it
was used for point sampling only.
Original commit message from CVS:
- change sunaudio category to Sink/Audio
- change HAVE_FIONREAD macro to GST_CHECK_FIONREAD
- add conditional include for FIONREAD ioctl on more files
Original commit message from CVS:
* gst/ffmpegcolorspace/imgconvert.c: (img_convert): Fixes for
warnings (bugs, actually) noticed by gcc but not forte.
Original commit message from CVS:
* configure.ac: Add sunaudio
* examples/Makefile.am: make gstplay depend on gconf
* gst/ffmpegcolorspace/gstffmpegcodecmap.c: Remove c99-isms
* gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette),
(convert_table_lookup), (img_convert): remove c99-isms
* gst/ffmpegcolorspace/imgconvert_template.h: make a constant
unsigned, to fix a warning on Solaris
* gst/mpeg1sys/systems.c: bcopy->memcpy
* gst/rtjpeg/RTjpeg.c: (RTjpeg_yuvrgb8): bcopy->memcpy
* sys/Makefile.am: Add sunaudio
Original commit message from CVS:
* ext/jpeg/gstjpegdec.c: (gst_jpegdec_get_type):
* ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type),
(gst_jpegenc_getcaps):
move format setting to inner loop
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcolorspace_getcaps):
use GST_PAD_CAPS if available so that we use already negotiated
caps
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(qtdemux_parse_moov), (qtdemux_parse):
extra debugging
* sys/qcam/qcam-Linux.c: (qc_lock_wait), (qc_unlock):
* sys/qcam/qcam-os.c: (qc_lock_wait), (qc_unlock):
move hardcoded path to DEFINE
Original commit message from CVS:
* ext/mad/gstid3tag.c: (gst_id3_tag_init):
remove leftover g_print
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
don't try setting only a subset of the caps. We don't want to kill
autoplugging on purpose
Original commit message from CVS:
* gconf/Makefile.am: Fix for non-GNU make
* gst-libs/gst/Makefile.am: Change directory order to handle
GstPlay linking with gstinterfaces
* gst-libs/gst/audio/make_filter: make use of tr portable
* gst-libs/gst/play/Makefile.am: Add intended \
* gst-libs/gst/xwindowlistener/xwindowlistener.c:
(gst_xwin_set_clips): Switch to ISO variadic macro. Use a
function prototype instead of void *.
* gst/ffmpegcolorspace/gstffmpegcodecmap.c: Switch to ISO variadic
macro.
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcolorspace_chain): wrap NULL in GST_ELEMENT_ERROR call
* gst/videofilter/make_filter: make use of tr portable
* pkgconfig/Makefile.am: Remove GNU extension in Makefile target
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssink.c:
(_gst_boolean_allow_overwrite_accumulator),
(gst_gnomevfssink_class_init):
fix erase signal - if any handler returns false the file will not be
overwritten. If no handler is connected, the file will not be
overwritten either.
renamed signal to "allow-overwrite"
* ext/mad/gstid3tag.c: (tag_list_to_id3_tag_foreach):
free string when adding it to ID3 failed
* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
unref event when done
* gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int):
free caps
* gst/typefind/gsttypefindfunctions.c:
(mpeg_video_stream_type_find):
fix invalid read
Original commit message from CVS:
2004-04-09 Andy Wingo <wingo@pobox.com>
* gst/audioconvert/bufferframesconvert.c: New element to convert
buffer-frames for float streams. Not working nicely yet.
* gst/audioconvert/plugin.h:
* gst/audioconvert/plugin.c: New files.
* gst/audioconvert/Makefile.am: Build the new files.
* gst/audioconvert/gstaudioconvert.c: Initialize via plugin.[ch].
Original commit message from CVS:
* gst/audioscale/gstaudioscale.c: (gst_audioscale_expand_value),
(gst_audioscale_getcaps): Fix getcaps to expand and union lists.
(bug #138225)
* gst/debug/Makefile.am:
* gst/debug/breakmydata.c: (gst_break_my_data_plugin_init):
* gst/debug/gstdebug.c: (plugin_init): Merge elements into one
plugin.
* gst/debug/negotiation.c: (gst_gst_negotiation_get_type),
(gst_negotiation_base_init), (gst_negotiation_class_init),
(gst_negotiation_init), (gst_negotiation_getcaps),
(gst_negotiation_pad_link), (gst_negotiation_chain),
(gst_negotiation_set_property), (gst_negotiation_get_property),
(gst_negotiation_plugin_init): New element to talk about random
negotiation things happening in a pipeline.
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_fixate): Don't fixate fields that
aren't in the caps.
* gst/sine/gstsinesrc.c: change rate caps to [1,MAX]
* gst/videocrop/gstvideocrop.c: (plugin_init): Change rank to NONE.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (theora_type_find):
fix bug where typefinding would claim it's theora whenever less then
7 bytes of data were available
Original commit message from CVS:
2004-03-23 Jeremy Simon <jesimon@libertysurf.fr>
* gst/typefind/gsttypefindfunctions.c: (ape_type_find),
(plugin_init):
Add a monkeysaudio typefind function
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link),
(_fixate_caps_to_int), (gst_audio_convert_fixate):
add a fixation function that pretty much does the right thing (fixes
#137556)
Original commit message from CVS:
* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
return taglist correctly from _get function, don't gst_pad_push it.
(fixes#137042)
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_getcaps),
(gst_audio_convert_link), (gst_audio_convert_change_state),
(gst_audio_convert_buffer_from_default_format):
do conversions from/to float correctly, fix some caps nego errors,
export correct supported caps in template and getcaps, use correct
caps in try_set_caps functions
Original commit message from CVS:
2004-03-06 Christophe Fergeau <teuf@gnome.org>
For some reason, I only committed a ChangeLog entry yesterday and
not the corresponding code...
* ext/mad/gstmad.c: Fix detection of Xing headers
* gst/tags/gstid3tag.c: Changes to support TLEN tags
Original commit message from CVS:
* ext/aalib/gstaasink.c: (gst_aasink_fixate), (gst_aasink_init):
Add fixate function. (bug #131128)
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init),
(gst_sdlvideosink_fixate): Add fixate function.
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
Fix attempt to print a non-pointer using GST_PTR_FORMAT.
* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt):
Fix missing break that was causing ulaw to be interpreted as
raw int.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_srcgetcaps),
(gst_faad_chain): Fix negotiation.
* ext/librfb/gstrfbsrc.c: (gst_rfbsrc_handle_src_event): Add
key and button events.
* gst-libs/gst/floatcast/floatcast.h: Fix a minor bug in this
dung heap of code.
* gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc.in: gstgconf
depends on gconf
* gst-libs/gst/gconf/gstreamer-gconf.pc.in: same
* gst-libs/gst/play/play.c: (gst_play_pipeline_setup),
(gst_play_video_fixate), (gst_play_audio_fixate): Add a fixate
function to encourage better negotiation, particularly between
audioconvert and osssink.
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain):
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): Make some debugging
more important.
* gst/typefind/gsttypefindfunctions.c: Fix mistake in flash
typefinding.
* gst/vbidec/vbiscreen.c: Add glib header
* pkgconfig/gstreamer-play.pc.in: Depends on gst-interfaces.
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_channels):
convert channels correctly. convert correctly to unsigned.
Original commit message from CVS:
2004-03-05 Benjamin Otte <otte@gnome.org>
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_buffer_to_default_format):
make float=>int conversion work correctly even in cornercases.
Original commit message from CVS:
2004-02-25 Andy Wingo <wingo@pobox.com>
* gst/interleave/interleave.c (interleave_buffered_loop): Always
push only when channel->buffer is NULL. Prevents segfaults doing
the state change after a nonlocal exit, like a scheme exception.
* gst/audioconvert/gstaudioconvert.c (gst_audio_convert_getcaps):
Handle the case where the intersected caps is empty.
Original commit message from CVS:
2004-02-22 Benjamin Otte <otte@gnome.org>
reported by: Stefan Kost <kost@imn.htwk-leipzig.de>
* gst/audioconvert/gstaudioconvert.c: (plugin_init):
set rank to PRIMARY
* gst/volume/gstvolume.c: (plugin_init):
set rank to NONE
fixes#134960
2004-02-22 Julio M. Merino Vidal <jmmv@menta.net>
reviewed by Benjamin Otte <otte@gnome.org>
* ext/flac/gstflacenc.c: (gst_flacenc_chain):
escape NULL strings in GST_ELEMENT_ERROR properly (fixes#135116)
Original commit message from CVS:
2004-02-20 Andy Wingo <wingo@pobox.com>
* gst/intfloat/, gst/oneton: Removed, replaced by audioconvert and
interleave respectively.
* gst/interleave/deinterleave.c: New plugin: deinterleave
(replaces on oneton).
* gst/interleave/interleave.c: New plugin: interleave.
* gst/interleave/plugin.h: Support file.
* gst/interleave/plugin.c: Support file.
* configure.ac: Remove intfloat and oneton, add interleave.
* ext/sndfile/gstsf.c: Handle events better.
* gst/audioconvert/gstaudioconvert.c: Change to support int2float
and float2int operation. int2float has scheduling problems as
noted in in2float_chain.
Original commit message from CVS:
* ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init): Disable gdk_pixbuf
typefinding, since it seems to be worse than nothing.
* gst/typefind/gsttypefindfunctions.c: (qt_type_find): Add ftyp
atom to recognize .mp4 and .m4a files as video/quicktime.
Original commit message from CVS:
* gst/sine/demo-dparams.c: (quit_live),
(dynparm_log_value_changed), (dynparm_value_changed), (main):
Use double dparams, not float.
* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
(gst_sinesrc_init): Change sync default to FALSE, since multiple
sync'd elements don't really work correctly.
* gst/volume/gstvolume.c: (volume_class_init), (volume_init),
(volume_update_volume), (volume_get_property): Change dparam
to double.
Original commit message from CVS:
* gst/sine/demo-dparams.c: (dynparm_log_value_changed),
(dynparm_value_changed), (main): Convert from float to double.
* gst/sine/gstsinesrc.c: (gst_sinesrc_init): same.
Original commit message from CVS:
Convert a few inner loops to use liboil. This is currently
optional, and is only enabled if liboil is present (duh!).
* configure.ac: Check for liboil-0.1
* gst/intfloat/Makefile.am:
* gst/intfloat/gstint2float.c: (conv_f32_s16), (scalarmult_f32),
(gst_int2float_chain_gint16):
* gst/videofilter/Makefile.am:
* gst/videofilter/gstvideobalance.c: (gst_videobalance_class_init),
(tablelookup_u8), (gst_videobalance_planar411):
* gst/videotestsrc/Makefile.am:
* gst/videotestsrc/gstvideotestsrc.c: (plugin_init):
* gst/videotestsrc/videotestsrc.c: (splat_u8), (paint_hline_YUY2),
(paint_hline_IYU2), (paint_hline_str4), (paint_hline_str3),
(paint_hline_RGB565), (paint_hline_xRGB1555):
Original commit message from CVS:
2004-02-04 Benjamin Otte <in7y118@public.uni-hamburg.de>
* gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
(gst_sinesrc_dispose):
fix memleak by properly disposing sinesrc
Original commit message from CVS:
2004-02-03 Benjamin Otte <in7y118@public.uni-hamburg.de>
* ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init):
* gst/typefind/gsttypefindfunctions.c:
fix memleaks shown by gst-typefind
Original commit message from CVS:
2004-02-03 Benjamin Otte <in7y118@public.uni-hamburg.de>
* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream):
set explicit caps before adding the element, so the autopluggers can
plug correctly.
* gst/typefind/gsttypefindfunctions.c: (mp3_type_find),
(mpeg2_sys_type_find), (mpeg1_sys_type_find),
(mpeg_video_type_find), (mpeg_video_stream_type_find),
(dv_type_find):
fix memleaks in typefind functions. gst_type_find_suggest takes a const
argument.
Original commit message from CVS:
2004-02-02 Jeremy Simon <jesimon@libertysurf.fr>
* gst/tags/gstvorbistag.c: (gst_vorbis_tag_add),
(gst_tag_to_vorbis_comments):
Add replaygain support to vorbistag
Original commit message from CVS:
2004-01-31 Benjamin Otte <in7y118@public.uni-hamburg.de>
* ext/theora/theoradec.c: (theora_dec_chain):
make comments work
* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
(vorbis_dec_src_event), (vorbis_dec_chain):
add encoder tag, fix tag reading to be more error tolerant, change
BITRATE to NOMINAL_BITRATE, add debugging, don't unref events after
gst_pad_event_default.
* gst/tags/gstvorbistag.c:
(gst_tag_list_from_vorbiscomment_buffer):
undefine function specific define at end of function
Original commit message from CVS:
2004-01-29 Benjamin Otte <in7y118@public.uni-hamburg.de>
* ext/ogg/gstoggdemux.c:
lots of changes - mainly support for chained bitstreams, seeking,
querying and bugfixes of course
* ext/vorbis/Makefile.am:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisdec.h:
add vorbisdec raw vorbis decoder
* ext/vorbis/vorbis.c: (plugin_init):
register vorbisdec as PRIMARY, vorbisfile as SECONDARY
* gst/intfloat/Makefile.am:
* gst/intfloat/float22int.c:
* gst/intfloat/float22int.h:
* gst/intfloat/gstintfloatconvert.c: (plugin_init):
add float2intnew plugin. It converts multichannel interleaved float to
multichannel interleaved int. The name should probably be changed.
* gst/typefind/gsttypefindfunctions.c: (theora_type_find),
(plugin_init):
add typefinding for raw theora video so oggdemux can detect it.
Original commit message from CVS:
2004-01-28 Julien MOUTTE <julien@moutte.net>
* gst-libs/gst/play/gstplay.c: (gst_play_seek_to_time): seek on video
sink element first.
* gst/videoscale/gstvideoscale.c:
(gst_videoscale_handle_src_event): Fixing src event handler.
Original commit message from CVS:
* gst/ac3parse/gstac3parse.c: update to checklist 5
* gst/adder/gstadder.c: rewrite negotiation. update to checklist 5
* gst/audioconvert/gstaudioconvert.c: update to checklist 5
* gst/audioscale/gstaudioscale.c: same
* gst/auparse/gstauparse.c: same
* gst/avi/gstavidemux.c: same
Original commit message from CVS:
2004-01-26 Julien MOUTTE <julien@moutte.net>
* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain): Dunno how
that one managed to stay there... Fixed.
Original commit message from CVS:
2004-01-26 Benjamin Otte <in7y118@public.uni-hamburg.de>
* gst-libs/gst/audio/audio.h:
remove buffer-frames from audio caps
* gst/audioconvert/gstaudioconvert.c:
fix plugin to really work.
Original commit message from CVS:
2004-01-25 Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_info):
Additional pad usability check.
* gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init),
(mp1videoparse_find_next_gop), (gst_mp1videoparse_time_code),
(gst_mp1videoparse_real_chain):
Fix MPEG video stream parsing. The original plugin had several
issues, including not timestamping streams where the source was
not timestamped (this happens with PTS values in mpeg system
streams, but MPEG video is also a valid stream on its own so
that needs timestamps too). We use the display time code for that
for now. Also, if one incoming buffer contains multiple valid
frames, we push them all on correctly now, including proper EOS
handling. Lastly, several potential segfaults were fixed, and we
properly sync on new sequence/gop headers to include them in next,
not previous frames (since they're header for the next frame, not
the previous). Also see #119206.
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain),
(bpf_from_header):
Move caps setting so we only do it after finding several valid
MPEG-1 fraes sequentially, not right after the first one (which
might be coincidental).
* gst/typefind/gsttypefindfunctions.c: (mpeg1_sys_type_find),
(mpeg_video_type_find), (mpeg_video_stream_type_find),
(plugin_init):
Add unsynced MPEG video stream typefinding, and change some
probability values so we detect streams rightly. The idea is as
follows: I can have an unsynced system stream which contains
video. In the current code, I would randomly get a type for either
system or video stream type found, because the probabilities are
being calculated rather randomly. I now use fixed values, so we
always prefer system stream if that was found (and that is how it
should be). If no system stream was found, we can still identity
the stream as video-only.
Original commit message from CVS:
2004-01-23 Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
Fix typefinding for MPEG-1 system streams, similar to MPEG-2.
Original commit message from CVS:
* ext/esd/esdsink.c: (gst_esdsink_class_init): Remove property
that handles osssink fallback.
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init),
(gst_audio_convert_getcaps):
* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
Add audio/x-qdm2 for QDM2 audio.
* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
* gst/sine/gstsinesrc.h: Add example of how to implement tags.
* gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps):
Decrease minimum size to 16x16.
* gst/wavparse/gstwavparse.c:
Convert disabled pad template caps to new caps.
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
(gst_xvimagesink_chain): Throw element error when display cannot
be opened. Increase minimum framerate to 1.0. Check the data
free function on a buffer to make sure it is the type we expect
before manipulating it.
Original commit message from CVS:
2004-01-15 Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst/videofilter/Makefile.am:
* gst/volume/Makefile.am:
Since we use videofilter symbols, link to it.
Original commit message from CVS:
2004-01-15 Julien MOUTTE <julien@moutte.net>
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_interface_init): Setting
mixer interface type to HARDWARE.
* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init): Adding a default
type to SOFTWARE.
* gst-libs/gst/mixer/mixer.h: Adding mixer interface type and macro.
* gst-libs/gst/mixer/mixertrack.h: Adding mixertrack flag SOFTWARE.
* gst/volume/gstvolume.c: (gst_volume_interface_supported),
(gst_volume_interface_init), (gst_volume_list_tracks),
(gst_volume_set_volume), (gst_volume_get_volume),
(gst_volume_set_mute), (gst_volume_mixer_init),
(gst_volume_dispose), (gst_volume_get_type), (volume_class_init),
(volume_init): Implementing mixer interface.
* gst/volume/gstvolume.h: Adding tracklist for mixer interface.
* sys/oss/gstosselement.c: (gst_osselement_get_type),
(gst_osselement_change_state): Removing some trailing commas in
structures.
* sys/oss/gstossmixer.c: (gst_ossmixer_interface_init): Setting mixer
interface type to HARDWARE.
* sys/v4l/gstv4lcolorbalance.c:
(gst_v4l_color_balance_interface_init): Setting colorbalance interface
type to HARDWARE.
* sys/v4l2/gstv4l2colorbalance.c:
(gst_v4l2_color_balance_interface_init): Setting colorbalance
interface type to HARDWARE.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): use exactly the
same code than ximagesink for event handling.
Original commit message from CVS:
2004-01-14 Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst/typefind/gsttypefindfunctions.c: (matroska_type_find),
(plugin_init):
Improve matroska typefinding for odd-typed headers...
Original commit message from CVS:
2004-01-11 Julien MOUTTE <julien@moutte.net>
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain): Fixing the
pad_alloc_buffer implementation to use ->srcpad
* ext/hermes/gstcolorspace.c: (gst_colorspace_chain): Fixing the
pad_alloc_buffer implementation to use ->srcpad
* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain): Fixing the
pad_alloc_buffer implementation to use ->srcpad
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
(gst_ximagesink_chain), (gst_ximagesink_buffer_free),
(gst_ximagesink_buffer_alloc): Now only use GST_BUFFER_PRIVATE to keep
a reference to everything we need.
* sys/ximage/ximagesink.h: adding a reference to the sink in the image.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
(gst_xvimagesink_buffer_alloc): Now only use GST_BUFFER_PRIVATE to keep
a reference to everything we need.
* sys/xvimage/xvimagesink.h: adding a reference to the sink in the image
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain):
Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
* gst-libs/gst/xoverlay/xoverlay.c:
(gst_x_overlay_got_desired_size): Updating doc for the xid being 0.
* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain):
Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
(gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc),
(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init): Implementing
the bufferalloc_function to replace bufferpools, fixing the XOverlay
interface implementation to handle xid being 0 and fix some bugs
triggered by Benjamin's testcase.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc),
(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init): Implementing
the bufferalloc_function to replace bufferpools, fixing the XOverlay
interface implementation to handle xid being 0 and fix some bugs
triggered by Benjamin's testcase.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect):
Fix pad_link function to handle formats that ffmpeg returns
as multiple caps structures.
* gst/videofilter/gstvideofilter.c: (gst_videofilter_chain):
Only complain if source buffer is _smaller_ than expected.
* gst/videoscale/gstvideoscale.c: (gst_videoscale_init),
(gst_videoscale_handle_src_event): Resize navigation events
when passing them upstream.
* gst/videotestsrc/gstvideotestsrc.c:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/videotestsrc/videotestsrc.c:
* gst/videotestsrc/videotestsrc.h:
Rewrite many of the buffer painting functions to handle odd
sizes (for many formats, size%4!=0 or size%8!=0). Most have
been verified to work with my video card.
* testsuite/gst-lint: Add check for elements calling
gst_pad_get_caps() instead of gst_pad_get_allowed_caps().
Original commit message from CVS:
* ext/dv/gstdvdec.c: (gst_dvdec_loop):
Fix caps negotiation.
* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init),
(dvdnavsrc_update_buttoninfo), (dvdnavsrc_get),
(dvdnavsrc_get_event_mask), (dvdnav_handle_navigation_event),
(dvdnavsrc_event):
* ext/mpeg2dec/gstmpeg2dec.c:
* gst-libs/gst/navigation/navigation.c:
(gst_navigation_send_key_event), (gst_navigation_send_mouse_event):
* gst-libs/gst/navigation/navigation.h:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_handle_src_event):
* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
Super-simple first version of mouse and keyboard events. Clicking
on a DVD menu now works, although it may not take you where you
expected.
* gst/sine/gstsinesrc.c: (gst_sinesrc_src_fixate):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_videotestsrc_src_fixate):
These fixate functions were broken - they never actually
fixated :)
Original commit message from CVS:
2003-12-22 Benjamin Otte <in7y118@public.uni-hamburg.de>
* gst/volume/Makefile.am:
* gst/volume/gstvolume.c: (volume_connect), (volume_parse_caps),
(volume_base_init), (volume_init):
Reenable volume element and fix to work with new caps stuff.
Rhythmbox needs this.
Original commit message from CVS:
2003-12-21 Ronald Bultje <rbultje@ronald.bitfreak.net>
* configure.ac:
Improve mpeg2enc detection. This is for distributions that do
ship mjpegtools, but without mpeg2enc. Also does object check
for might there ever be ABI incompatibility.
* ext/mpeg2enc/gstmpeg2enc.cc:
Add Andrew as second maintainer (he's helping me), and also add
an error if no caps was set. This happens if I pull before capsnego
and that's something I should solve sometime else.
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_blockgroup):
Fix time parsing.
* gst/matroska/matroska-mux.c: (gst_matroska_mux_audio_pad_link),
(gst_matroska_mux_track_header):
Add caps to templates.
* gst/mpegaudioparse/gstmpegaudioparse.c: (mp3_sink_factory):
Add mpegversion=1 to prevent confusion with MPEG/AAC.
* gst/mpegstream/gstmpegdemux.c:
Remove layer since it causes warnings about unfixed caps.
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
Fix obvious typo (we error out if caps were set, we should of
course error out if *no* caps were set).
* sys/oss/gstosselement.c: (gst_osselement_convert):
Fix format conversion, we confused bits/bytes.
* sys/oss/gstosselement.h:
Improve documentation for 'bps'.
* sys/v4l/TODO:
Remove stuff about plugins that need removing - this was done
ages ago.
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_init),
(gst_v4lmjpegsrc_src_convert), (gst_v4lmjpegsrc_src_query):
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_init), (gst_v4lsrc_src_convert),
(gst_v4lsrc_src_query):
* sys/v4l2/gstv4l2src.c: (gst_v4l2src_init),
(gst_v4l2src_src_convert), (gst_v4l2src_src_query):
Add get_query_types(), get_formats() and query() functions.
Original commit message from CVS:
Changed a >= test to a > on the input buffer size in gst_tag_list_from_vorbiscomment_buffer. This was preventing the parsing of vorbiscomments not ending with a sync byte (which seems to happen in flac files)
Original commit message from CVS:
m4a typefind function.
We think the mimetype is audio/x-m4a, thats what rhythmbox wants
but there's also sources to say it could be audio/mp4 or audio/MP4A-LATM
Original commit message from CVS:
tagging stuff and build fixes. In detail:
- make gdk-pixbuf loader work when distchecking
- fix invalid syntax in ffmpeg Makefile. wildcards for EXTRA_DIST are not allowed. This broke builds where distdir != srcdir
- fix ffmpeg cvs grabbing when srcdir != distdir
- new id3tag plugin for id3 tag reading/writing (uses mad's libid3tag)
- mad and libid3tag require mad/libid3tag v0.15. Fixed configure to require that
- added ogg demuxer in ext/ogg. The demuxer does not handle events yet. Especially getting seeking right will require some effort or code copying from libvorbis.
- added raw vorbis detection to typefinding. oggdemux requires a typefind function to detect its contents.
- tags plugin in gst/tags. Provides API in <gst/tags/gsttagediting.h>. API includes tag matching GStreamer <=> ID3 and GStreamer <=> vorbis and writing/reading vorbiscomments or ID3v1 tags. Also included is a simple vorbiscomment reader/writer. Writing will not really work though until someone writes oggmux.
- various build fixes. Mostly missing (DIST)CLEANFILES.
- vorbisenc handles tag writing.
Now it's YOUR turn to fix and write more plugins that handle writing/reading of tags. :)