Adds block-after-capture property to block running viewfinder after capturing.
This property is useful if application wants to display capture preview and avoid
running viewfinder on background.
Based on a patch by Tommi Myöhänen <ext-tommi.1.myohanen@nokia.com>
Adds a new property called viewfinder-filter to camerabin.
This property is used to add a filter to process the video
flow right before the viewfinder sink.
Also updates test to check property exists.
It's an external which lives in gstcheck.c. Redeclaring it makes some
compilers/architectures think the 'buffers' in the individual tests are
a different symbol... and therefore we end up comparing holodecks with
oranges.
Fixes build of faac due to functions not being static nor
having being declared in headers. (No previous prototype error)
Probably due to added -Wmissing-prototypes
Only put primary language into GST_TAG_LANGUAGE, and convert to lower case,
ie. only use "en" of "en_GB". This is per our tag documentation and hence
what apps expect. Also add example to kateenc property description so people
know a language code is wanted here.
katedec: Kate decoder (text only)
kateenc: Kate encoder (text and DVD SPU only)
katetag: Kate tagger
kateparse: Kate parser
tiger: Kate renderer using the Tiger rendering library
Fixes#525743.
Connect to the pad-removed signal of the ptdemux elements so that we remove the
ghostpads for them. Fixes cleanup when going to NULL as well as when releasing
the sinkpads.
Fixes#561752
Sprinkle more logging to make it easier to follow. Specify a low framerate and
capture resolution to avoid tests timing out. Make the sinks sync to test closer
to reality. Fix Makefile to use uninstalled interface.
* decouple image capturing from image post-processing and encoding
* post image-captured message after image is captured
* post preview-image message with snapshot of captured image
Create output caps from input caps, so we maintain any fields we
might get on the input caps, such as codec_data or rate and channels.
Set channels and rate on the output caps if we don't have input caps
or they don't contain such fields. We do this partly because we can,
but also because some muxers need this information. Tagreadbin will
also be happy about this.
Don't allow setting filename via img-done signal parameter but force app
use filename property. Don't stop capture when setting filename property.
Update check unit test based on the change.
The video was recorded for too long for the test timeouts. Also the verification
suite did not had custom timouts at all. Also split the verification for images
and video to get better reporting.
Use playbin2 for validation. Use tmp_dir for capturing. Wait with g_cond for
burst capture finish. Cleanup some g_object_set. Add some logging to ease
tracing.
Original commit message from CVS:
* gst/mxf/mxfaes-bwf.c: (mxf_bwf_handle_essence_element),
(mxf_aes3_handle_essence_element):
* gst/mxf/mxfalaw.c: (mxf_alaw_handle_essence_element):
* gst/mxf/mxfd10.c: (mxf_d10_picture_handle_essence_element),
(mxf_d10_sound_handle_essence_element):
* gst/mxf/mxfdemux.c: (gst_mxf_demux_pad_init),
(gst_mxf_demux_choose_package),
(gst_mxf_demux_handle_header_metadata_update_streams),
(gst_mxf_demux_pad_next_component),
(gst_mxf_demux_handle_generic_container_essence_element),
(gst_mxf_demux_parse_footer_metadata),
(gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query):
* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_handle_essence_element):
* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_handle_essence_element):
* gst/mxf/mxfmetadata.c: (mxf_metadata_sequence_init),
(mxf_metadata_structural_component_init),
(mxf_metadata_generic_picture_essence_descriptor_init):
* gst/mxf/mxfmpeg.c: (mxf_mpeg_video_handle_essence_element),
(mxf_mpeg_audio_handle_essence_element):
* gst/mxf/mxfparse.h:
* gst/mxf/mxfup.c: (mxf_up_handle_essence_element):
* gst/mxf/mxfvc3.c: (mxf_vc3_handle_essence_element):
* tests/check/elements/mxfdemux.c: (_sink_chain):
Implement support for OP2a/b/c and OP3a/b/c, i.e. tracks with
more than a single component. This currently only works for
the case where the components are stored in playback order
in the file.
Set some more default/distinguished values for the structural
metadata.
Make some types more strict by choosing the correct subclasses.
Set DISCONT flag on buffers after a component switch.
Take the last partition from the random index pack for the footer
partition of the header partition doesn't reference the footer
partition. This gives us the final structural metadata for
some more files in the beginning.
Original commit message from CVS:
* tests/check/elements/mxfdemux.c: (_sink_event):
* tests/check/elements/mxfdemux.h:
Make sure the main loop is already running when handling the EOS
event in pull mode. This works around a race condition that can
happen if the element goes into PLAYING, handles everything and
sends EOS before the main loop is started.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/mxfdemux.c: (_pad_added), (_sink_chain),
(_sink_event), (_create_sink_pad), (_create_src_pad_push),
(_src_getrange), (_src_query), (_create_src_pad_pull),
(GST_START_TEST), (mxfdemux_suite):
* tests/check/elements/mxfdemux.h:
Add push and pull mode unit test for mxfdemux.
Original commit message from CVS:
* tests/check/elements/speexresample.c: (test_pipeline):
Make unit test again faster to prevent timeouts with valgrind.
Original commit message from CVS:
* tests/check/elements/speexresample.c: (GST_START_TEST):
Make the unit test a bit faster to prevent timeouts, especially
with valgrind.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/aacparse.c:
* tests/check/elements/amrparse.c:
Add unit tests for new parsers.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/qtmux.c: (setup_src_pad),
(teardown_src_pad), (setup_qtmux), (cleanup_qtmux),
(check_qtmux_pad), (GST_START_TEST), (qtmux_suite), (main):
Add unit test for qtmux.
Original commit message from CVS:
* tests/check/elements/speexresample.c: (element_message_cb),
(eos_message_cb), (test_pipeline), (GST_START_TEST),
(speexresample_suite):
Add pipeline unit tests for testing all supported formats with
up/downsampling and different in/outrates.
* gst/speexresample/gstspeexresample.c:
(gst_speex_resample_push_drain), (gst_speex_resample_process):
* gst/speexresample/speex_resampler_wrapper.h:
Fix bugs identified by the testsuite.
Original commit message from CVS:
* gst/speexresample/gstspeexresample.c: (gst_speex_resample_start),
(gst_speex_resample_get_unit_size),
(gst_speex_resample_push_drain), (gst_speex_resample_event),
(gst_speex_resample_check_discont), (gst_speex_resample_process),
(gst_speex_resample_transform):
* gst/speexresample/gstspeexresample.h:
Rewrite timestamp tracking to make it more robust and guarantee
a continous stream.
* tests/check/Makefile.am:
* tests/check/elements/speexresample.c: (setup_speexresample),
(cleanup_speexresample), (fail_unless_perfect_stream),
(test_perfect_stream_instance), (GST_START_TEST),
(test_discont_stream_instance), (live_switch_alloc_only_48000),
(live_switch_get_sink_caps), (live_switch_push),
(speexresample_suite):
Add unit tests for speexresample based on the audioresample unit tests.
Original commit message from CVS:
* tests/check/elements/audioresample.c: (setup_audioresample),
(fail_unless_perfect_stream), (test_perfect_stream_instance),
(test_discont_stream_instance):
Now that GstBaseTransform is 'fixed' ... remove cruft from tests.
Add debugging for coherence.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* ext/x264/gstx264enc.c:
* tests/check/Makefile.am:
* tests/check/elements/x264enc.c: (setup_x264enc),
(cleanup_x264enc), (GST_START_TEST), (x264enc_suite), (main):
Add documentation and unit test for x264enc.
Original commit message from CVS:
* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
(gst_interleave_finalize), (gst_audio_check_channel_positions),
(gst_interleave_set_channel_positions),
(gst_interleave_class_init), (gst_interleave_init),
(gst_interleave_set_property), (gst_interleave_get_property),
(gst_interleave_request_new_pad), (gst_interleave_release_pad),
(gst_interleave_sink_setcaps), (gst_interleave_src_query_duration),
(gst_interleave_src_query_latency), (gst_interleave_collected):
* gst/interleave/interleave.h:
Allow setting channel positions via a property and allow using the
channel positions on the input as the channel positions of the output.
Fix some broken logic and memory leaks.
* tests/check/Makefile.am:
* tests/check/elements/interleave.c: (src_handoff_float32),
(sink_handoff_float32), (GST_START_TEST), (interleave_suite):
Add unit tests for checking correct handling of channel positions.
Original commit message from CVS:
* gst/interleave/deinterleave.c:
Add another example launch line.
* gst/interleave/interleave.c: (interleave_24),
(gst_interleave_finalize), (gst_interleave_base_init),
(gst_interleave_class_init), (gst_interleave_init),
(gst_interleave_request_new_pad), (gst_interleave_release_pad),
(gst_interleave_change_state), (__remove_channels),
(__set_channels), (gst_interleave_sink_getcaps),
(gst_interleave_set_process_function),
(gst_interleave_sink_setcaps), (gst_interleave_sink_event),
(gst_interleave_src_query_duration), (gst_interleave_src_query),
(forward_event_func), (forward_event), (gst_interleave_src_event),
(gst_interleave_collected):
* gst/interleave/interleave.h:
Major rewrite of interleave using GstCollectpads. This new version
also supports almost all raw audio formats and has better caps
negotiation. Fixes bug #506594.
Also update docs and add some more examples.
* tests/check/elements/interleave.c: (interleave_chain_func),
(GST_START_TEST), (src_handoff_float32), (sink_handoff_float32),
(interleave_suite):
Add some more extensive unit tests for interleave.
Original commit message from CVS:
* tests/check/elements/deinterleave.c: (GST_START_TEST):
Set keep-positions property to TRUE for the 8 channel test to ensure
that the original channel position is set on the output.
Original commit message from CVS:
* gst/interleave/Makefile.am:
* gst/interleave/deinterleave.c: (deinterleave_24),
(gst_deinterleave_finalize), (gst_deinterleave_base_init),
(gst_deinterleave_class_init), (gst_deinterleave_init),
(gst_deinterleave_add_new_pads), (gst_deinterleave_set_pads_caps),
(gst_deinterleave_set_process_function),
(gst_deinterleave_sink_setcaps), (__remove_channels),
(__set_channels), (gst_deinterleave_getcaps),
(gst_deinterleave_process), (gst_deinterleave_chain),
(gst_deinterleave_sink_activate_push):
* gst/interleave/deinterleave.h:
Add support for all raw audio formats and provide better negotiation
if the caps are changing.
Don't allow changes of the channel positions and set the position of
the corresponding channel on the src pad caps.
General cleanup and smaller bugfixes.
* tests/check/elements/deinterleave.c: (float_buffer_check_probe):
Check the channel positions on the output buffer caps.
Original commit message from CVS:
* tests/check/Makefile.am:
Add deinterleave unit test to VALGRIND_TO_FIX, since it causes
weird invalid free errors in valgrind/libc after _exit for some
reason.
* tests/check/elements/deinterleave.c: (pads_created),
(set_channel_positions), (src_handoff_float32_8ch),
(float_buffer_check_probe),
(pad_added_setup_data_check_float32_8ch_cb),
(make_fake_src_8chans_float32), (GST_START_TEST),
(deinterleave_suite):
Add some more deinterleave unit test bits I had locally.
Original commit message from CVS:
* gst/interleave/Makefile.am:
* gst/interleave/deinterleave.h:
* gst/interleave/interleave.h:
* gst/interleave/plugin.h:
Split definitions into separate header files for better documentation
generation.
* gst/interleave/deinterleave.c: (gst_deinterleave_base_init),
(gst_deinterleave_class_init), (gst_deinterleave_sink_setcaps),
(gst_deinterleave_process):
Don't use alloca, allow caps changes as long as the number of channels
does not change, don't use g_warning, return NOT_NEGOTIATED as early
as possible and some other cleanup.
* gst/interleave/interleave.c: (gst_interleave_base_init),
(gst_interleave_class_init):
Do some random cleanup.
* tests/check/Makefile.am:
* tests/check/elements/deinterleave.c: (GST_START_TEST),
(deinterleave_chain_func), (deinterleave_pad_added),
(deinterleave_suite):
Add unit tests for the deinterleave element.
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* tests/check/elements/audioresample.c:
(live_switch_alloc_only_48000), (live_switch_get_sink_caps),
(live_switch_push), (GST_START_TEST):
Add unit test for the latest basetransform negotiation changes.
See bug #526768.
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* gst/audioresample/gstaudioresample.c: (gst_audioresample_init):
Let audioresample use the buffer allocation of basetransform instead
of it's own stuff.
* tests/check/elements/audioresample.c: (alloc_only_48000),
(GST_START_TEST), (audioresample_suite):
Add unit test for the recent basetransform bugfix, where upstream
changes caps to something that can't be passed through anymore.
Original commit message from CVS:
* tests/check/elements/ofa.c: (bus_handler), (GST_START_TEST):
Only check if the generated fingerprints are valid Base64. The
fingerprints are different when running on different architectures
which is a) no problem because the fingerprints are tolerant enough
and b) is caused by libofa. Fixes bug #528266.
Original commit message from CVS:
* tests/check/elements/souphttpsrc.c: (got_buffer),
(souphttpsrc_suite):
Increase the timeout for the internet tests to 250 seconds
and check for NULL caps instead of just crashing.
The real fix would be to implement an shoutcast server for the unit test
instead of relying on a working internet connection.
Fixes bug #521749.
Original commit message from CVS:
* tests/check/elements/ofa.c: (GST_START_TEST):
Also check that we have processed at least 135 seconds of audio
until we stop and calculated a fingerprint.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/ofa.c: (bus_handler), (GST_START_TEST),
(ofa_suite), (main):
Add simple unit tests for the OFA plugin.
Original commit message from CVS:
* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_got_headers_cb),
(gst_soup_http_src_chunk_allocator),
(gst_soup_http_src_got_chunk_cb),
(gst_soup_http_src_uri_get_protocols):
Don't autoplug souphttpsrc for dav/davs. This is better handled by
GIO and GnomeVFS as they provide authentication.
Don't leak the icy caps if we already set them and get a new
icy-metaint header.
Try harder to set the icy caps on the output buffer to have correct
caps for the first buffer already.
* tests/check/elements/souphttpsrc.c: (got_buffer),
(GST_START_TEST):
Check that we get a buffer with application/x-icy caps if iradio-mode
is enabled and we have an icecast URL.
Original commit message from CVS:
* gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
(gst_selector_pad_finalize), (gst_selector_pad_get_property),
(gst_selector_pad_event), (gst_input_selector_class_init),
(gst_input_selector_init), (gst_input_selector_set_active_pad),
(gst_input_selector_set_property),
(gst_input_selector_get_property),
(gst_input_selector_request_new_pad),
(gst_input_selector_release_pad),
(gst_input_selector_push_pending_stop),
(gst_input_selector_switch):
* gst/selector/gstinputselector.h:
Various cleanups.
Added tags to the pads.
Select active pad based on the pad object instead of its name.
Fix refcount in set_active_pad.
Add property to get the number of pads.
* gst/selector/gstoutputselector.c:
(gst_output_selector_class_init),
(gst_output_selector_set_property),
(gst_output_selector_get_property):
Various cleanups.
Select the active pad based on the pad object instead of its name.
Fix locking when setting the active pad.
* gst/selector/gstselector-marshal.list:
* tests/check/elements/selector.c: (cleanup_pad),
(selector_set_active_pad), (run_input_selector_buffer_count):
Fixes for pad instead of padname for pad selection.
Original commit message from CVS:
Patch by: Wouter Cloetens <wouter at mind dot be>
* ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_class_init),
(gst_soup_http_src_init), (gst_soup_http_src_dispose),
(gst_soup_http_src_set_property), (gst_soup_http_src_get_property),
(gst_soup_http_src_create):
* ext/soup/gstsouphttpsrc.h:
* tests/check/elements/souphttpsrc.c: (run_test), (GST_START_TEST),
(souphttpsrc_suite):
Add support for specifying a list of cookies to be passed in
the HTTP request. Fixes bug #518722.
Original commit message from CVS:
* gst/selector/gstinputselector.c:
* gst/selector/gstinputselector.h:
Added "select-all" property to make it work like aggregator in 0.8.
* gst/selector/gstoutputselector.c:
Fix resend-latest behavoiur.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/selector.c:
Add unit tests for selector.
Original commit message from CVS:
* gst/multifile/gstmultifilesink.c:
* gst/multifile/gstmultifilesrc.c:
Use g_file_[sg]et_contents() instead of using stdio functions.
Should be less error prone.
* tests/check/elements/multifile.c:
Create a temporary directory using standard functions instead of
creating a directory in the current dir.
Original commit message from CVS:
* docs/plugins/gst-plugins-bad-plugins.args:
* docs/plugins/gst-plugins-bad-plugins.hierarchy:
* docs/plugins/gst-plugins-bad-plugins.interfaces:
Remove equalizer plugin docs
* tests/check/Makefile.am:
Add GST_OPTION_CFLAGS, to get -Werror -Wall into the tests as for
other modules.
* tests/check/elements/multifile.c:
* tests/check/elements/rganalysis.c:
* tests/check/elements/rglimiter.c:
Fix compiler warnings from -Wall -Werror
Original commit message from CVS:
* configure.ac:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/inspect/plugin-xingheader.xml:
* gst/xingheader/Makefile.am:
* gst/xingheader/gstxingmux.c:
* gst/xingheader/gstxingmux.h:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/xingmux.c:
* tests/check/elements/xingmux_testdata.h:
Remove the xingmux plugin, as the element has moved into
mpegaudioparse in -ugly.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* gst/xingheader/gstxingmux.c:
* gst/xingheader/gstxingmux.h:
Add documentation for the xingheader plugin.
* tests/check/elements/xingmux.c: (GST_START_TEST):
Set element state to PLAYING before doing something else.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/xingmux.c: (setup_xingmux),
(cleanup_xingmux), (GST_START_TEST), (xingmux_suite), (main):
* tests/check/elements/xingmux_testdata.h:
Add simple unit test for the xingmux element.
* gst/xingheader/gstxingmux.c: (generate_xing_header),
(gst_xing_mux_finalize), (xing_reset):
Fix a memleak and invalid seek tables with less than 100 MP3 frames.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/equalizer.c: (setup_equalizer),
(cleanup_equalizer), (GST_START_TEST), (equalizer_suite), (main):
Add some minimal tests for the equalizer plugin.
Original commit message from CVS:
* gst/interleave/interleave.c: (gst_interleave_request_new_pad):
Let's not call every request pad we create "sink%d", that'll
create problems if there's to be more than one pad. Fixes#490682.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/interleave.c:
Add unit test for the above.
Original commit message from CVS:
Patch by: Thomas Green <tom78999 gmail com>
* ext/neon/gstneonhttpsrc.c:
With libneon 2.6, we need to set the NE_SESSFLAG_ICYPROTO
flag if we want ICY streams to be handled too, otherwise
libneon will error out with a 'can't parse reponse' error.
Fixes#474696.
* tests/check/elements/neonhttpsrc.c:
Unit test for the above by Yours Truly.
Original commit message from CVS:
* configure.ac:
* gst/spectrum/Makefile.am:
* gst/spectrum/demo-audiotest.c: (draw_spectrum),
(message_handler), (main):
* gst/spectrum/demo-osssrc.c: (draw_spectrum), (message_handler):
* gst/spectrum/gstspectrum.c: (gst_spectrum_base_init),
(gst_spectrum_class_init), (gst_spectrum_init),
(gst_spectrum_dispose), (gst_spectrum_set_property),
(gst_spectrum_get_property), (gst_spectrum_start),
(gst_spectrum_setup), (gst_spectrum_message_new),
(gst_spectrum_transform_ip):
* gst/spectrum/gstspectrum.h:
Port GstSpectrum to GstAudioFilter and libgstfft, add support
for int32, float and double, use floats for the message contents,
average all FFTs done in one interval for better results, use
a better windowing function, allow posting the phase in the message
and actually do an FFT with the requested number of bands instead
of interpolating.
* tests/check/elements/spectrum.c: (GST_START_TEST),
(spectrum_suite):
Improve the units tests by checking for a 11025Hz sine wave
and add unit tests for all 4 supported sample types.
Original commit message from CVS:
* tests/check/elements/bpwsinc.c: (GST_START_TEST),
(bpwsinc_suite):
* tests/check/elements/lpwsinc.c: (GST_START_TEST),
(lpwsinc_suite):
Also test everything in 32 bit float mode.