=== release 0.8.5 === 2004-10-06 Thomas Vander Stichele * NEWS: * RELEASE: * configure.ac: releasing 0.8.5, "Take You On" 2004-10-06 Wim Taymans * 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, ...). 2004-10-06 Thomas Vander Stichele * configure.ac: bump for prerelease 2004-10-06 Stephane Loeuillet * gst/wavparse/gstwavparse.c: add ATRAC3 to STATIC CAPS to fix a warning * gst/matroska/ebml-read.c: * gst-libs/gst/riff/riff-read.c: fix typos 2004-10-06 Stephane Loeuillet * gst-libs/gst/riff/riff-media.c: generate caps for ATRAC3 audio streams * gst/realmedia/rmdemux.c: generate caps for ATRAC3 audio streams 2004-10-06 Stephane Loeuillet * gst/wavparse/Makefile.am * gst/wavparse/riff.h * gst/wavparse/wavparse.vcproj riff.h removal (unused and duplication with riff-ids.h) 2004-10-06 Stephane Loeuillet * gst/wavparse/gstwavparse.h remove duplicated defines for audio codec codes * gst-libs/gst/riff/riff-ids.h * gst/wavenc/riff.h: add "4CC" code for ATRAC3 audio streams add "4CC" code for ITU_G721_ADPCM (unused for now) 2004-10-06 Wim Taymans * gst/flx/gstflxdec.c: (gst_flxdec_init), (gst_flxdec_loop): Actually _do_ negotiation. Pass gdouble as arg instead of guint64 for the framerate. 2004-10-06 Wim Taymans * 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. 2004-10-06 Thomas Vander Stichele written by: Gora Mohanty * po/LINGUAS: * po/or.po: add Oriya translation 2004-10-05 Ronald S. Bultje * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): Prevent overwrite of size member. Makes audio sound crappy. 2004-10-05 Stephane Loeuillet * gst/typefind/gsttypefindfunctions.c: (plugin_init): Add rmvb to the list of known RealMedia extensions 2004-10-05 Wim Taymans * ext/libmng/gstmngdec.c: (gst_mngdec_loop), (mngdec_error), (mngdec_openstream), (mngdec_closestream), (mngdec_handle_sink_event), (mngdec_readdata), (mngdec_gettickcount), (mngdec_settimer), (mngdec_processheader), (mngdec_getcanvasline), (mngdec_refresh), (gst_mngdec_change_state): Set the framerate correctly. 2004-10-04 Ronald S. Bultje * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): There was something wrong with the index massaging. 2004-10-04 Wim Taymans * ext/jpeg/gstjpeg.c: (smoke_type_find), (plugin_init): * ext/jpeg/gstsmokedec.c: (gst_smokedec_init), (gst_smokedec_chain): * ext/jpeg/gstsmokedec.h: * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init), (gst_smokeenc_init), (gst_smokeenc_resync), (gst_smokeenc_chain): * ext/jpeg/gstsmokeenc.h: * ext/jpeg/smokecodec.c: (smokecodec_encode_new), (smokecodec_decode_new), (smokecodec_info_free), (smokecodec_set_quality), (smokecodec_get_quality), (smokecodec_set_threshold), (smokecodec_get_threshold), (smokecodec_set_bitrate), (smokecodec_get_bitrate), (find_best_size), (abs_diff), (put), (smokecodec_encode_id), (smokecodec_encode), (smokecodec_parse_id), (smokecodec_parse_header), (smokecodec_decode): * ext/jpeg/smokecodec.h: * ext/jpeg/smokeformat.h: Updated smoke, new bitstream, allows embedding in ogg. 2004-10-04 Ronald S. Bultje * 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 Wim Taymans * configure.ac: configure update for libmng. 2004-10-04 Wim Taymans * ext/libmng/Makefile.am: * ext/libmng/gstmng.c: (plugin_init): * ext/libmng/gstmng.h: * ext/libmng/gstmngdec.c: (gst_mngdec_get_type), (gst_mngdec_base_init), (gst_mngdec_class_init), (gst_mngdec_sinklink), (gst_mngdec_init), (gst_mngdec_src_getcaps), (gst_mngdec_loop), (gst_mngdec_get_property), (gst_mngdec_set_property), (mngdec_error), (mngdec_openstream), (mngdec_closestream), (mngdec_handle_sink_event), (mngdec_readdata), (mngdec_gettickcount), (mngdec_settimer), (mngdec_processheader), (mngdec_getcanvasline), (mngdec_refresh), (gst_mngdec_change_state): * ext/libmng/gstmngdec.h: * ext/libmng/gstmngenc.c: (gst_mngenc_get_type), (mng_caps_factory), (raw_caps_factory), (gst_mngenc_base_init), (gst_mngenc_class_init), (gst_mngenc_sinklink), (gst_mngenc_init), (gst_mngenc_chain), (gst_mngenc_get_property), (gst_mngenc_set_property): * ext/libmng/gstmngenc.h: Added basic MNG decoder. Needs more work. The encoder does not work yet. 2004-10-04 Ronald S. Bultje * gst/realmedia/rmdemux.c: (gst_rmdemux_handle_sink_event), (gst_rmdemux_loop), (gst_rmdemux_add_stream), (gst_rmdemux_parse_mdpr), (gst_rmdemux_dump_mdpr): Don't hang on length=0 chunks. Some negotiation fixes. Signal no-more-pads. 2004-10-04 Thomas Vander Stichele * configure.ac: you need at least 1.0.4 of speex 2004-10-04 Iain * ext/speex/gstspeexdec.h: Revert the includes changes. * ext/speex/gstspeexenc.[ch]: Revert the includes changes. 2004-09-30 Iain * sys/sunaudio/gstsunaudio.c (gst_sunaudiosink_open): Use the device found during init or set as a property instead of hardcoding /dev/audio 2004-10-04 Ronald S. Bultje * gst/realmedia/rmdemux.c: (gst_rmdemux_class_init), (gst_rmdemux_init), (gst_rmdemux_handle_sink_event), (gst_rmdemux_loop), (gst_rmdemux_add_stream), (re_hexdump_bytes), (re_dump_pascal_string), (gst_rmdemux_dump__rmf), (gst_rmdemux_dump_prop), (gst_rmdemux_parse_mdpr), (gst_rmdemux_dump_mdpr), (gst_rmdemux_dump_indx), (gst_rmdemux_dump_data): Use debug category, fix EOS handling. filesrc ! rmdemux now works. 2004-10-04 Ronald S. Bultje * 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-03 Christophe Fergeau * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr): fixed compilation 2004-10-02 Ronald S. Bultje * 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 Ronald S. Bultje * 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-01 Christian Schaller * ext/ivorbis/vorbis.c: Patch from Phil Blundell (Bug 152341) 2004-10-01 Wim Taymans * ext/speex/gstspeexdec.c: (gst_speex_dec_class_init), (speex_dec_get_formats), (speex_dec_convert), (speex_dec_src_query), (speex_dec_src_event), (speex_dec_event), (speex_dec_chain), (gst_speexdec_get_property), (gst_speexdec_set_property): Small cleanups. 2004-10-01 Wim Taymans * gst/wavparse/gstwavparse.c: (gst_wavparse_class_init), (gst_wavparse_stream_init), (gst_wavparse_fmt), (gst_wavparse_other), (gst_wavparse_loop), (gst_wavparse_pad_convert), (gst_wavparse_pad_query), (gst_wavparse_srcpad_event): * gst/wavparse/gstwavparse.h: Added some more debugging info. Fix the case where the length of the file is 0. Make sure we seek to sample borders. 2004-10-01 Wim Taymans * 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 2004-10-01 Ronald S. Bultje * ext/dvdnav/dvdnavsrc.c: (dvdnav_handle_navigation_event): Don't use g_print(); use GST_DEBUG(). 2004-10-01 Ronald S. Bultje * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), (gst_ogg_mux_queue_pads): Handle EOS properly. 2004-10-01 Sebastien Cote Reviewed by: Ronald S. Bultje * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_sinkconnect), (gst_faad_chain), (gst_faad_change_state): * ext/faad/gstfaad.h: Allow playback of raw (unframed) MPEG AAC files (#148993). 2004-10-01 Sebastien Cote Reviewed by: Ronald S. Bultje * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): Throw error if we didn't recognize the stream. Fixes #152289. 2004-10-01 Ronald S. Bultje * gst/videoscale/gstvideoscale.c: (gst_videoscale_link): Fix negotiation. 2004-10-01 Francis Labonte Reviewed by: Ronald S. Bultje * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): Fix memleak. 2004-10-01 Balamurali Viswanathan Reviewed by: Ronald S. Bultje * sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_setparams): Solve #152805. * sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_mute): Solve 152806. 2004-10-01 Ronald S. Bultje * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps_with_data), (gst_riff_create_audio_caps_with_data): Add codec_data handling (like asfdemux used to do). * gst/asfdemux/gstasf.c: (plugin_init): * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init), (gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream): Use riff-media for caps creation instead of our own (mostly broken) copy of its functions. 2004-10-01 Ronald S. Bultje * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_try_capture): Don't actually error out if we get another return value than -EINVAL. Opposite to what I first thought, drivers have random return values for this, although -EINVAL is the expected return value. Since this is not fatal, we shouldn't use GST_ELEMENT_ERROR() but just GST_ERROR_OBJECT(). 2004-10-01 Ronald S. Bultje * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init), (dvdreadsrc_init), (dvdreadsrc_dispose), (dvdreadsrc_set_property), (dvdreadsrc_get_property), (_open), (_seek), (_read), (dvdreadsrc_get), (dvdreadsrc_open_file), (dvdreadsrc_change_state): Fix. Don't do one big huge loop around the whole DVD, that will cache all data and thus eat sizeof(dvd) (several GB) before we see something. * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): Actually NULL'ify event after using it. * gst/matroska/ebml-read.c: (gst_ebml_read_use_event), (gst_ebml_read_handle_event), (gst_ebml_read_element_id), (gst_ebml_read_element_length), (gst_ebml_read_element_data), (gst_ebml_read_seek), (gst_ebml_read_skip): Handle events. * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init), (gst_dvd_demux_init), (gst_dvd_demux_get_audio_stream), (gst_dvd_demux_get_subpicture_stream), (gst_dvd_demux_plugin_init): Fix timing (this will probably break if I seek using menus, but I didn't get there yet). VOBs and normal DVDs should now work. Add a mpeg2-only pad with high rank so this get autoplugged for MPEG-2 movies. * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_base_init), (gst_mpeg_demux_class_init), (gst_mpeg_demux_init), (gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_get_video_stream), (gst_mpeg_demux_get_audio_stream), (gst_mpeg_demux_get_private_stream), (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes), (gst_mpeg_demux_plugin_init): Use this as second rank for MPEG-1 and MPEG-2. Still use this for MPEG-1 but use dvddemux for MPEG-2. * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init), (gst_mpeg_parse_init), (gst_mpeg_parse_new_pad), (gst_mpeg_parse_parse_packhead): Timing. Only add pad template if it exists. Add sink template from class and not from ourselves. This means we will always use the correct sink template even if it is not the one defined in this file. 2004-09-29 Wim Taymans * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes): * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead): Fix playback of mpeg again, timestamps where screwed up by patch 1.61. 2004-09-29 Ronald S. Bultje * 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-28 Wim Taymans * ext/speex/gstspeex.c: (plugin_init): * ext/speex/gstspeexdec.c: (gst_speex_dec_base_init), (gst_speex_dec_class_init), (speex_dec_get_formats), (speex_get_event_masks), (speex_get_query_types), (gst_speex_dec_init), (speex_dec_convert), (speex_dec_src_query), (speex_dec_src_event), (speex_dec_event), (speex_dec_chain), (gst_speexdec_get_property), (gst_speexdec_set_property), (speex_dec_change_state): * ext/speex/gstspeexdec.h: * ext/speex/gstspeexenc.c: (gst_speexenc_get_formats), (gst_speexenc_get_type), (speex_caps_factory), (raw_caps_factory), (gst_speexenc_base_init), (gst_speexenc_class_init), (gst_speexenc_sinkconnect), (gst_speexenc_convert_src), (gst_speexenc_convert_sink), (gst_speexenc_get_query_types), (gst_speexenc_src_query), (gst_speexenc_init), (gst_speexenc_get_tag_value), (comment_init), (comment_add), (gst_speexenc_metadata_set1), (gst_speexenc_set_metadata), (gst_speexenc_setup), (gst_speexenc_buffer_from_data), (gst_speexenc_push_buffer), (gst_speexenc_set_header_on_caps), (gst_speexenc_chain), (gst_speexenc_get_property), (gst_speexenc_set_property), (gst_speexenc_change_state): * ext/speex/gstspeexenc.h: Rewrote speex encoder, make sure it can be embedded in ogg. Implemented speex decoder. 2004-09-28 Christian Schaller * configure.ac: Remove kioslave plugin. Markey is brewing a new working one * ext/Makefile.am: Remove kioslave plugin * ext/kio: remove * gst-plugins.spec.in: remove kio plugin from spec 2004-09-27 Wim Taymans * 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. 2004-09-26 Benjamin Otte * gst/debug/gstnavigationtest.c: (gst_navigationtest_class_init), (gst_navigationtest_handle_src_event), (draw_box_planar411), (gst_navigationtest_planar411), (gst_navigationtest_change_state): * gst/debug/gstnavigationtest.h: make navigationtest display button-press and button-release events 2004-09-26 Iain * gst/interleave/interleave.c (all_channels_new_media): Checks if all the channels have received a new media event. (interleave_buffered_loop): Compresses a new media event on all channels into one. 2004-09-26 Iain * gst/wavenc/gstwavenc.c (gst_wavenc_chain): Company says we need to call the sinkpad's default event handler and not the srcpads. He also says this is confusing :) (gst_wavenc_stop_file): Company says that seek events only go upstream we should send a discontinuous downstream instead. 2004-09-25 Christian Schaller * Update SPEC file to be usable in conjunction with Fedora Core, Fedora.us and freshrpms packages * Fix typo in multifilesrc test Makefile 2004-09-24 Wim Taymans * gst/playback/gstplaybasebin.c: (new_decoded_pad): Only signal the no_more_pads signal when we have added the stream to our list. 2004-09-24 Wim Taymans * 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. 2004-09-24 Ronald S. Bultje * 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). 2004-09-23 Ronald S. Bultje * 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 Zaheer Abbas Merali * testsuite/multifilesink/Makefile.am: fix typo 2004-09-22 Julien MOUTTE * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy): * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls): Fix mistakes from thaytan's patches. 2004-09-23 Jan Schmidt * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy): For completeness, XSync in the destroy function as xvimage does. 2004-09-23 Jan Schmidt * 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. 2004-09-22 Zaheer Abbas Merali * ext/ogg/gstoggmux.c: (gst_ogg_mux_init), (gst_ogg_mux_next_buffer), (gst_ogg_mux_loop): * ext/vorbis/vorbis.c: (plugin_init): * ext/vorbis/vorbisenc.c: (gst_vorbisenc_init), (gst_vorbisenc_chain): * ext/vorbis/vorbisenc.h: remove explicit newmedia support from oggmux and vorbisenc add debug category to vorbisenc * gst/multifilesink/gstmultifilesink.c: (gst_multifilesink_class_init), (gst_multifilesink_init), (gst_multifilesink_dispose), (gst_multifilesink_set_location), (gst_multifilesink_set_property), (gst_multifilesink_next_file), (gst_multifilesink_handle_event), (gst_multifilesink_chain), (plugin_init): * gst/multifilesink/gstmultifilesink.h: add support for streamheader in multifilesink 2004-09-22 Ronald S. Bultje * 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. 2004-09-21 Zaheer Abbas Merali * testsuite/multifilesink/Makefile.am: * testsuite/multifilesink/lame_test.c: (gst_newmedia_base_init), (gst_newmedia_class_init), (gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger), (test_format), (newfile_signal), (test_signal), (main): * testsuite/multifilesink/multifilesrc_test.c: (main): * testsuite/multifilesink/oggtheora_test.c: (gst_newmedia_base_init), (gst_newmedia_class_init), (gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger), (test_format), (newfile_signal), (test_signal), (main): * testsuite/multifilesink/oggvorbis_test.c: (gst_newmedia_base_init), (gst_newmedia_class_init), (gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger), (test_format), (newfile_signal), (test_signal), (main): * testsuite/multifilesink/wavenc_test.c: (gst_newmedia_base_init), (gst_newmedia_class_init), (gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger), (test_format), (newfile_signal), (test_signal), (main): New media tests 2004-09-20 Christian Schaller * Fix mikmod license to LGPL as they have relicensed * Move Dirac and Effectv into LGPL section of README_license 2004-09-20 Ronald S. Bultje * 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. 2004-09-20 Johan Dahlin * ext/jpeg/gstjpegdec.c (gst_jpegdec_chain): Allocate the buffer after setting caps. 2004-09-19 Zaheer Abbas Merali * gst/wavenc/gstwavenc.c: (gst_wavenc_init), (gst_wavenc_chain): * gst/wavenc/gstwavenc.h: Added newmedia support to wavenc 2004-09-17 Wim Taymans * 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. 2004-09-16 Iain * gst/audioconvert/gstaudioconvert.c (_fixate_caps_to_int): Free the try caps. 2004-09-15 Ronald S. Bultje * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream): Caps are only set if the type of the stream is unknown, but this is initialized in ->init_stream(), so set to UNKNOWN after calling ->init_stream() so that capsnego starts. 2004-09-15 Ronald S. Bultje * 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 Arwed v. Merkatz * gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps): * gst/matroska/matroska-mux.c: (audiosink_templ), (gst_matroska_mux_audio_pad_link): * gst/typefind/gsttypefindfunctions.c: (tta_caps), (plugin_init): Use audio/x-ttafile for tta files and audio/x-tta for raw tta frames. 2004-09-15 Ronald S. Bultje * 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 David Schleef * 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 2004-09-15 Ronald S. Bultje * 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 Ronald S. Bultje * gst/playback/gstplaybin.c: (gst_play_bin_get_property): Volume is a double not a float. 2004-09-15 Wim Taymans * 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. 2004-09-15 Wim Taymans * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), (gst_ogg_mux_send_headers), (gst_ogg_mux_loop): Fix the case where the muxer would mark pages as delta frames when they are not (vorbis only ogg). 2004-09-15 Ronald S. Bultje * 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). 2004-09-15 Ronald S. Bultje * 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. 2004-09-14 Brian Cameron * 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. 2004-09-17 Wim Taymans * 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. 2004-09-13 Ronald S. Bultje * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), (qtdemux_parse_trak): Don't crash by dividing by zero (see sample movie in #126922). 2004-09-13 Ronald S. Bultje * gst/qtdemux/qtdemux.c: (qtdemux_audio_caps): Don't touch non-existing data (fixes crash on file in #140147). 2004-09-13 Ronald S. Bultje * gst/playback/gstplaybasebin.c: (gst_play_base_bin_dispose), (gst_play_base_bin_set_property): Handle double disposals, and proper change of URIs. 2004-09-13 Martin Eikermann * gst/mpegstream/gstmpegparse.c: fix synchronistation for streams recorded from digital PCR fixes bug #119376 2004-09-13 Ronald S. Bultje * ext/gnomevfs/Makefile.am: * ext/gnomevfs/gstgnomevfs.c: (plugin_init): * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_get_type), (gst_gnomevfssink_dispose), (gst_gnomevfssink_init), (gst_gnomevfssink_uri_get_type), (gst_gnomevfssink_uri_get_protocols), (gst_gnomevfssink_uri_get_uri), (gst_gnomevfssink_uri_set_uri), (gst_gnomevfssink_uri_handler_init), (gst_gnomevfssink_set_property), (gst_gnomevfssink_get_property), (gst_gnomevfssink_open_file), (gst_gnomevfssink_close_file): * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get_type), (gst_gnomevfssrc_init), (gst_gnomevfssrc_dispose), (gst_gnomevfssrc_uri_get_type), (gst_gnomevfssrc_uri_get_protocols), (gst_gnomevfssrc_uri_get_uri), (gst_gnomevfssrc_uri_set_uri), (gst_gnomevfssrc_uri_handler_init), (gst_gnomevfssrc_set_property), (gst_gnomevfssrc_get_property), (gst_gnomevfssrc_open_file), (gst_gnomevfssrc_close_file): * ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris): * ext/gnomevfs/gstgnomevfsuri.h: Add URI support to Gnome-VFS plugins. Tries to load a fixed list of fake URIs to see which this version of Gnome-VFS likes, and uses that for the Gst-URI interface. Makes playbin support http:// streams. Also fix up some stupid behaviour in gnomevfssrc. 2004-09-13 Ronald S. Bultje * 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. 2004-09-12 David Schleef Fixes: #151879, #151881, #151882, #151883, #151884, #151886, #151887, #152102, #152247. * examples/indexing/indexmpeg.c: 64-bit warning fixes. * examples/seeking/cdparanoia.c: same * examples/seeking/cdplayer.c: same * examples/seeking/seek.c: same * examples/seeking/spider_seek.c: same * examples/seeking/vorbisfile.c: same * examples/stats/mp2ogg.c: same * ext/esd/esdsink.c: (gst_esdsink_class_init), (gst_esdsink_dispose): Dispose of element properly. * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_seek): 64-bit warning fixes. * ext/nas/nassink.c: (gst_nassink_class_init), (gst_nassink_dispose): Dispose of element correctly. * gst/wavenc/gstwavenc.c: (gst_wavenc_chain): Fix leak. * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls), (gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy): Fix 64-bit warning. * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy): Fix 64-bit warning. 2004-09-12 Stephane Loeuillet * configure.ac : change speex detection as 1.1.6 now uses .pc/pkg-config and they changed their headers location. 2004-09-09 Arwed v. Merkatz * gst/matroska/matroska-mux.h: * gst/matroska/matroska-mux.c: (gst_matroska_mux_reset), (gst_matroska_mux_start), (gst_matroska_mux_finish), (gst_matroska_mux_write_data): Write multiple blocks/frames per cluster. Write meta-seek information (seek heads). 2004-09-09 Scott Wheeler * gst/gstplaybin.c: (gst_play_bin_class_init), (gst_play_bin_init), (gst_play_bin_set_property), (gst_play_bin_get_property), (gen_audio_element), (gen_audio_element): Add a volume element / property to the pipeline. 2004-09-07 Wim Taymans * gst/videomixer/videomixer.c: (gst_videomixer_blend_buffers): Copy timestamps from the master pad to the output buffers. 2004-09-03 Thomas Vander Stichele * ext/raw1394/gstdv1394src.c: throw errors when applicable 2004-09-01 Arwed v. Merkatz * gst/matroska/ebml-ids.h: * gst/matroska/ebml-read.c: (gst_ebml_read_date): * gst/matroska/ebml-write.c: (gst_ebml_write_date): * gst/matroska/matroska-mux.c: (gst_matroska_mux_finish): automatically convert unix time <-> ebml time when reading/writing a date, use gst_ebml_write_uint to write CUETIME, not gst_ebml_write_date. * gst/matroska/matroska-ids.h: * gst/matroska/matroska-mux.c: (gst_matroska_mux_create_uid), (gst_matroska_mux_reset), (gst_matroska_mux_audio_pad_link), (gst_matroska_mux_track_header), (gst_matroska_mux_start), (gst_matroska_mux_write_data): Write track and segment UIDs, write muxing date, write TRACKDEFAULTDURATION for TTA audio, write BLOCKDURATION if known. Create cues for audio only files. 2004-08-31 Ronald S. Bultje * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new): Re-commit ALSA switches. * gst/adder/gstadder.c: (gst_adder_loop): 64-bit fix (#151416). * gst/debug/progressreport.c: (gst_progressreport_report): 64-bit fix (#151419). * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_contents): 64-bit fix (#151420). * gst/playback/test3.c: (update_scale): 64-bit fix (#151421). 2004-08-31 Thomas Vander Stichele * configure.ac: bump nano to cvs