Commit graph

428 commits

Author SHA1 Message Date
Thiago Santos f24075887f videodecoder: implement caps query
Refactor the encoder's caps query proxying function to a common place
and use it in the videodecoder to proxy downstream restrictions.

The new function is private to the gstvideo lib.

https://bugzilla.gnome.org/show_bug.cgi?id=741263
2014-12-17 19:15:23 -03:00
Edward Hervey ff57f69134 video: Fix non-default usage of gst_video_sink_center_rect
Make sure we take into account non-0 x/y destination rectangles
2014-12-15 14:11:07 +01:00
Tim-Philipp Müller 2f7af2d41b tests: rtpbasepayload: fix indentation 2014-12-12 15:09:55 +00:00
Tim-Philipp Müller 091e124950 tests: audiodecoder: fix indentation 2014-12-12 15:09:55 +00:00
Tim-Philipp Müller c57bb51c03 tests: audiodecoder: fix broken refcounting in unit test
The set_format vfunc does not pass ownership of the caps
to the decoder, so we mustn't unref the caps there.

gst_event_new_caps() does not take ownership of the caps
passed, so we must unref the caps afterwards.

Fixes leaks when running test in valgrind in 1.4 branch.
2014-12-12 15:09:55 +00:00
Mathieu Duponchelle b2413d46ed audiodecoder: Push pending events before sending EOS.
Segments are added to the pending events, and pushing a segment
is mandatory before sending EOS.

+ Adds a test.

https://bugzilla.gnome.org/show_bug.cgi?id=740853
2014-12-05 12:04:04 +01:00
Tim-Philipp Müller c61604fd9b tests: fix leak in video unit test 2014-11-16 13:56:16 +00:00
Vineeth T M 7f5aa9af04 tests: video: add video blend test
Add test to check rendering of overlays of different sizes
that are completely or partially outside the video surface.
Once the overlay is blended to the video, verify if the
position of the blended overlay is as expected, by comparing
the pixels of the blended video with the expected values.

https://bugzilla.gnome.org/show_bug.cgi?id=739281
2014-11-16 13:51:34 +00:00
Wim Taymans b73096ce8c video-color: add gamma encode/decode functions
Add functions to encode and decode gamma.
Add unit test to check that encode and decode are eachothers inverse
and that the limits are respected.
2014-11-11 16:11:15 +01:00
Wim Taymans 6711c50495 test: add scaling test
Sort pack and unpack performance measurements
2014-11-10 14:53:13 +01:00
Wim Taymans 39662d0393 video-chroma: ORCify 2x vertical upsampling
Make an ORC version of the 2x vertical upsampling code.
Improve unit tests, test chroma up and down sampling.
memset buffer in conversion to make valgrind happy.
2014-11-07 12:13:28 +01:00
Wim Taymans 3fde8dd746 tests: add video conversion test
Go through all conversions and make a list of performance.
2014-11-06 18:19:44 +01:00
Wim Taymans 21f57317bb video-chroma: optimize chroma subsampling a little
Combine multiplies in 4x filters.
Rename conversion functions to make them nicer in orc.
Add ORC versions for various downsampling algorithms
Add unit test chroma resampler
2014-11-06 13:08:42 +01:00
Wim Taymans 64c1303dd0 tests: make pack/unpack test
Make a more complete pack/unpack test, check if the image after
pack/unpack has the same color and precision, and has correctly
duplicated subsampled pixels.
2014-11-06 10:45:13 +01:00
Wim Taymans 4ab5a29e46 tests: get the correct number of video formats
Make a method to get the number of formats (including the last one).
2014-11-06 10:45:13 +01:00
Wim Taymans f5b9a26e0d tests: fix test 2014-10-30 14:48:45 +01:00
Wim Taymans fcc7fbd460 resampler: make shift easier to use 2014-10-29 16:26:10 +01:00
Wim Taymans 32047eaac0 video-scaler: add extra options 2014-10-29 16:26:10 +01:00
Wim Taymans 199fab4b06 video-scaler: add video scaler helper object
Add a video scaler object build on top of the resampler. It has
implementation to deal with interlaced video as well as horizontal and
vertical scaling functions.
2014-10-29 16:26:10 +01:00
Tim-Philipp Müller 1b19290183 tests: fix expected GstRTSPTimeRange structure size for ABI test for ppc32
Also see https://bugzilla.gnome.org/show_bug.cgi?id=695276
2014-10-24 13:04:07 +01:00
Ognyan Tonchev 5a3ebef605 audiodecoder: extend flush_events test to check for event leaks
https://bugzilla.gnome.org/show_bug.cgi?id=736788
2014-09-17 14:12:24 +03:00
Edward Hervey 2ca269ac6b check: Fix include path of rtp checks
Fixes make distcheck
2014-07-31 16:11:25 +02:00
Wim Taymans b108aad77b mikey: make message and payload mini-objects
Make the MIKEY message and payload objects miniobjects so that they have
a GType and are refcounted.
We can reuse the dispose method to clear our payload objects.
Add some annotations.
Implement a copy function for the MIKEY message.
Fix the unit test.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732589
2014-07-02 15:44:12 +02:00
Wim Taymans 0425f1cf4d rtspconnection: also allow POST before GET
Don't only allow GET and then POST request to setup tunneling over HTTP
but also allow POST and then GET.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732459
2014-07-01 16:30:25 +02:00
Tim-Philipp Müller 8f8f1f9de1 tests: fix vararg handling in rtpbasedepayload unit test
Makes it pass on 32-bit systems.
2014-06-23 01:02:22 +01:00
Tim-Philipp Müller ec6b178339 tests: fix vararg handling in rtpbasepayload unit test
Makes it pass on 32-bit systems.
2014-06-23 00:33:18 +01:00
Sebastian Dröge 909dd7831b audiodecoder: Don't be too picky about the output frame counter
With most decoder libraries, and especially when accessing codecs via
OpenMAX or similar APIs, we don't have the ability to properly related
the output buffers to a number of input samples. And could e.g. get
a fractional number of input buffers decoded at a time.

Previously this would in the end lead to an error message and stopped
playback. Change it to a warning message instead and try to handle it
gracefully. In theory the subclass can now get timestamp tracking
wrong if it completely misuses the API, but if on average it behaves
correct (and gst-omx and others do) it will continue to work properly.

Also add a test for the new behaviour.

We don't change it in the encoder yet as that requires more internal logic
changes AFAIU and I'm not aware of a case where this was a problem so far.
2014-06-20 11:02:55 +02:00
Thiago Santos fb3a9d1bc5 video: avoid overflows when doing int operations for size
size is a gsize, so cast the operands to it to avoid overflows
and setting wrong value to the video size.

Includes tests.

https://bugzilla.gnome.org/show_bug.cgi?id=731195
2014-06-09 23:38:39 -03:00
Vincent Penquerc'h 0a49b7050f tests: fix uninitialized variable use in video decoder test 2014-06-06 10:42:11 +01:00
Thibault Saunier d2ea3260e9 videodecoder: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

+ Add a testcase

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:49 +02:00
Thibault Saunier 12df7fa49d audiodecoder: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:21 +02:00
Thibault Saunier 2843f358d9 videoencoder: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:19 +02:00
Thibault Saunier 967d1fb982 audioencoder: Keep still meaningfull pending events on FLUSH_STOP
Only EOS and segment should be deleted in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:16 +02:00
Thiago Santos 5d35675a74 tests: videodecoder: audiodecoder: add tests for eos after segment
Tests that pushing a buffer after the segment returns EOS
2014-05-26 23:24:56 -03:00
Sebastian Dröge 7bdaa49fa3 video: And check comparison for real 2014-05-21 10:43:49 +02:00
Sebastian Dröge f8b367212d video: Fix broken comparison in unit test
libs/video.c:540:50: error: comparison of constant 2 with boolean expression is always false
      [-Werror,-Wtautological-constant-out-of-range-compare]
            && !GST_VIDEO_INFO_N_PLANES (&vinfo) > 2) {
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
2014-05-21 10:40:32 +02:00
Tim-Philipp Müller 134f51894a Add new unit test binary to .gitignore 2014-05-04 18:14:54 +01:00
Olivier Crête bdf8ce286d rtpbasepayload: Implement reconfigure event & renegotiation without subclass
Implement the reconfigure event, also do correct downstream caps negotiation
if the subclass doesn't implementy set_caps.

https://bugzilla.gnome.org/show_bug.cgi?id=725361
2014-05-03 10:21:04 +02:00
Olivier Crête 42e3e22969 tests/check/libs/rtpbasepayload.c: Run gst-indent
https://bugzilla.gnome.org/show_bug.cgi?id=725361
2014-05-03 10:21:04 +02:00
Ognyan Tonchev 6750531504 rtspconnection: Add more tests
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728907
2014-04-30 16:27:25 +02:00
Sebastian Dröge 85c502d626 videoencoder/decoder: Fix memory leaks in the tests 2014-04-15 11:55:22 +02:00
Sebastian Dröge 16275f479f audiodecoder: Actually allocate enough memory for 64 bits, not just 32 bits
Also fix a memory leak.
2014-04-15 11:54:06 +02:00
Sebastian Dröge 2378848240 audioencoder: Fix memory leaks in unit test 2014-04-15 11:43:41 +02:00
Sebastian Dröge 29758da255 rtp: Fix GBytes memory leak in test 2014-04-15 10:29:12 +02:00
Wim Taymans 675d0400e1 mikey: Fix the KEMAC payload
The KEMAC payload actually needs to have subpayloads and the key should
go into the KEY_DATA subpayload. Add support for subpayloads and
implement the KEY_DATA payload.
Add some pointers to the conversion functions that allow us to add
encryption and decryption later.
2014-04-04 17:40:58 +02:00
Wim Taymans 83888d6b13 mikey: add MIKEY parsing helpers
MIKEY is defined in RFC 3830 and is used to exchange SRTP encryption
parameters between a sender and a receiver in a secure way.
This library implements a subset of the features, enough to implement
RFC 4567, using MIKEY in SDP and RTSP.
2014-03-24 17:12:52 +01:00
Ognyan Tonchev 4220442441 rtspconnection: Call closed() when GET is closed in tunneled mode
This patch adds read source on the write socket in tunneled
mode and we get a callback when client disconnects the GET
channel.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725313
2014-03-03 10:34:56 +01:00
Sebastian Rasmussen ba9e8f0797 tests: Refactor RTP basepayloading test into pay/depay parts
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723328
2014-02-24 12:12:18 +01:00
Tim-Philipp Müller 3afd5fb3ab tests: add new unit tests to .gitignore 2014-02-21 19:07:59 +00:00
Ognyan Tonchev 6bf215fa09 rtspconnection: New unit test
See https://bugzilla.gnome.org/show_bug.cgi?id=724720
2014-02-21 16:21:45 +01:00
Wim Taymans c6915ea785 check: add some more checks
Add header and payload length check in case of CSRCs.

See https://bugzilla.gnome.org/show_bug.cgi?id=723196
2014-02-04 14:32:48 +01:00
Thiago Santos 1ae733fd4e tests: audioencoder: add tests analogous to the videoencoder ones 2014-01-29 12:33:59 -03:00
Thiago Santos 4fefd48f05 tests: videoencoder: check that tags are pushed before eos
Check that if a new tag event is received right before eos it
is pushed before the eos
2014-01-29 12:33:59 -03:00
Thiago Santos 6684aa42cd tests: videoencoder: basic videoencoder base class test
Adds a single test for video encoding
2014-01-29 12:33:59 -03:00
Sebastian Rasmussen fa393e5d60 rtpbasepayload: Add statistics property
This property allows for an atomically retrieved set of properties that
can e.g. be used to generate RTP-Info headers.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=719415
2014-01-27 15:11:09 +01:00
Thiago Santos 1d75bdca92 tests: videodecoder: plug a few leaks
Remove leaks of caps and events references
2014-01-17 11:21:33 -03:00
Thiago Santos 36efe20679 tests: audiodecoder: add another test for negotiation with gap event
Check that even if the subclass doesn't call set_output_format, the base
class should use upstream provided caps to fill the output caps that is
pushed before the gap event is forwarded, otherwise it ends again fixating
the rate and channels to 1.

https://bugzilla.gnome.org/show_bug.cgi?id=722144
2014-01-15 15:20:39 -03:00
Thiago Santos bbbd9f7d49 tests: audiodecoder: check that negotiation works buffers and gaps
Adds 2 tests to verify that output caps are the expected value, reusing
input structure values for both buffers and gaps

https://bugzilla.gnome.org/show_bug.cgi?id=722144
2014-01-14 09:34:44 -03:00
Thiago Santos 755414ed1e tests: audiodecoder: add basic playback test for audio decoder
Simple test that just check that audio decoding works as expected

https://bugzilla.gnome.org/show_bug.cgi?id=722144
2014-01-14 09:34:44 -03:00
Thiago Santos 561a4fff15 tests: videodecoder: check that segment events are not dropped
Adds a test that simulates a scenario where the first buffers after
a segment can't be decoded and the decoder asks for those frames
to be released. The videodecoder base class should make sure that
the events attached to those first buffers are pushed even if the
buffers aren't going to be.

https://bugzilla.gnome.org/show_bug.cgi?id=721835
2014-01-13 06:11:09 -03:00
Thiago Santos b1e728a854 tests: videodecoder: add test for reverse playback
Checks that buffers are pushed backwards in reverse playback

https://bugzilla.gnome.org/show_bug.cgi?id=721666
2014-01-13 06:11:09 -03:00
Thiago Santos c564d5b2c9 tests: videodecoder: add check for serialization of events
Tests that events are properly serialized with buffers, also checks
that the usual events are sent (stream start, caps, segment and eos).
2014-01-07 22:08:14 -03:00
Thiago Santos 27530a0196 tests: videodecoder: add simple playback test
Add a simple playback test that makes sure that video decoder pushes
buffers in the same order it receives and that it respects the
set timestamps and durations
2014-01-07 22:08:14 -03:00
Tim-Philipp Müller d24f554a3c tests: make git ignore new test binary 2013-12-22 22:07:43 +00:00
Stefan Sauer 51038d70aa pbutils: add typefinder and descriptions for audio/x-xi
xi files can be read by libsndfile.
2013-12-17 18:06:12 +01:00
Sebastian Rasmussen 1966b85b20 tests: Add test for rtpbasepayload/-depayload
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720162
2013-12-10 14:42:13 +01:00
Sebastian Rasmussen c734f9fba8 rtpbuffer: Allow subbuffering of empty buffers
See https://bugzilla.gnome.org/show_bug.cgi?id=720162
2013-12-10 12:38:56 +01:00
Sebastian Dröge 2dda08478a audio: Add unit test for filling memory with silence samples 2013-11-03 15:58:35 +01:00
Edward Hervey a9e4750674 pbutils: descriptions: Allow smart codec tag handling
We already have internally the information on what type of stream (audio,
video, container, subtitle, ...) a certain caps is.
Instead of forcing callers to specify which CODEC_TAG category a certain
caps is, use that information to make a smart choice.

Does not break previous behaviour of gst_pb_utils_add_codec_description_to_tag_list
(if tag is specified it will be used, if caps is invalid it will be rejected,
...).

https://bugzilla.gnome.org/show_bug.cgi?id=702215
2013-06-28 07:09:53 +02:00
Branko Subasic 4dd5c5b808 rtpbuffer: add gst_rtp_buffer_get_payload_bytes
The function gst_rtp_buffer_get_payload can not be used in Python
because it lacks necessary length parameter. This patch adds a new
function, gst_rtp_buffer_get_payload_bytes, to use from Python
bindings. The new function has the advisory "Rename to:" annotation
so it can replace the gst_rtp_buffer_get_payload whan creating
bindings.

The function gst_rtp_buffer_get_extension_bytes is also added. It wraps
gst_rtp_buffer_get_extension_data which doesn't work in Python due to
incomplete annotation and because it returns the length as number of
32-bit words.

https://bugzilla.gnome.org/show_bug.cgi?id=698562
2013-06-18 11:23:40 +02:00
Patricia Muscalu b9933dd6a3 tests: add SDP modify test
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=698558
2013-04-24 14:13:43 +02:00
Wim Taymans 1bf3176e26 tests: avoid sdp boxed test leak 2013-04-24 14:12:41 +02:00
Jose Antonio Santos Cadenas ba1e693853 sdp: add boxed type for GstSDPMessage
Also added some tests of this improvement.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697808
2013-04-15 14:27:47 +02:00
Tim-Philipp Müller 61bc909189 tests: fix some printf format compiler warnings 2013-03-31 17:37:36 +01:00
Olivier Crête 17d5dbd337 rtsprange: Add function to convert a range between formats
Also add unit tests.
2013-03-11 10:41:31 +01:00
Olivier Crête 0353e608f8 rtsprange: Make _to_string() be more in line with RFC 2326
Fix various nits to make it more in line with the RFC, also add unit tests.
2013-03-11 10:41:25 +01:00
Tim-Philipp Müller 5455639fc3 tests: update libs ABI check GstRTSPTimeRange structure size on i386
https://bugzilla.gnome.org/show_bug.cgi?id=695276
2013-03-07 10:49:30 +00:00
Tim-Philipp Müller cb99c16744 tests: disable ABI checks for architectures with outdated structure size files 2013-01-17 09:50:16 +00:00
Tim-Philipp Müller 42f971c5eb encoding-profile: add gst_encoding_profile_get_file_extension()
API: gst_encoding_profile_get_file_extension()

https://bugzilla.gnome.org/show_bug.cgi?id=636753
2012-12-23 15:26:59 +00:00
Wim Taymans ce904ec551 rtsprange: add string conversion for new formats 2012-11-21 16:25:24 +01:00
Wim Taymans fdf904db32 rtsprange: add method to convert ranges to GstClockTime
Add a method to convert the values of GstRTSPRange to GstClockTime.
Add unit tests for the conversions.

API: gst_rtsp_range_get_times()
2012-11-21 15:35:46 +01:00
Wim Taymans 9746df1ed7 check: update for larger struct 2012-11-20 11:13:01 +01:00
Wim Taymans b785c66098 rtsp: avoid ABI break
Move new fields into structures appended at the end of the GstRTSPRange
to avoid ABI break.
2012-11-20 11:13:01 +01:00
Wim Taymans fe4b415f98 rtsp: parse UTC ranges 2012-11-19 16:59:48 +01:00
Wim Taymans b113f9697a rtsp: parse SMPTE ranges 2012-11-19 16:15:46 +01:00
Wim Taymans 81c1172ded check: add rtsp range checks 2012-11-19 13:56:53 +01:00
Tim-Philipp Müller d730b0c296 tests: add test for video unpack and pack functions 2012-11-09 23:41:16 +00:00
Wim Taymans 02b6e58eef tests: add NTP64 and ntp56 header extension checks 2012-11-06 09:18:54 +01:00
Tim-Philipp Müller 5f59b4f7ee Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Tim-Philipp Müller b36dba0577 tests: fix video overlay_composition_premultiplied_alpha test on big-endian machines
The unit test was checking for alpha at the wrong position.
2012-10-07 19:46:45 +01:00
Tim-Philipp Müller 49ac84fc32 tests: fix ABI struct headers for x86
Not caused by anything we changed recently as
far as I can tell.
2012-10-07 13:35:57 +01:00
Tim-Philipp Müller c6064e05a1 tests: add ABI structs header for 32-bit powerpc 2012-10-07 13:13:37 +01:00
Mark Nauwelaerts c629a44162 replace gst_tag_list_free with gst_tag_list_unref 2012-09-14 17:53:21 +02:00
Mark Nauwelaerts f7c247b6a3 replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:02:59 +02:00
Stefan Sauer 2fb27fa463 xmptag: migrate to the _full version of the API and drop the _full postfix
Fix up all invocations.
2012-09-12 21:32:04 +02:00
Tim-Philipp Müller d186109e71 tests: fix up libsabi test structure sizes for x86-64 2012-09-11 01:43:37 +01:00
Tim-Philipp Müller 37f9177817 video/x-3ivx -> video/mpeg, mpegversion=4 2012-09-10 00:28:15 +01:00
Tim-Philipp Müller 202cd3c17c install-plugins: constify _install_*sync() details array arguments 2012-09-09 18:29:40 +01:00
Mark Nauwelaerts cd2e795154 videooverlaycomposition: add some _get_argb and _get_ayuv functions
... that will handle automatic conversion to indicated format.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683180
2012-09-05 10:15:51 +02:00
Tim-Philipp Müller ba7d738d9e video/x-xvid -> video/mpeg,mpegversion=4 2012-09-03 18:56:26 +01:00