Commit graph

1837 commits

Author SHA1 Message Date
Sebastian Rasmussen
042e71a117 rtpbasepayload: Implement video SDP attributes
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726472
2015-10-02 17:44:14 +03:00
Vineeth TM
8e5f7f27f5 gstreamer: base: Fix memory leaks when context parse fails.
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.

And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.

https://bugzilla.gnome.org/show_bug.cgi?id=753852
2015-10-02 17:26:27 +03:00
Jan Schmidt
610ac2f55e tests: Add baseaudiovisualizer test, moved from -bad 2015-10-02 15:05:33 +10:00
Tim-Philipp Müller
0c992c5065 tests: subparse: add unit test for closing tag detection
</ i> should be handled like </i>

https://bugzilla.gnome.org/show_bug.cgi?id=755875
2015-09-30 18:18:15 +01:00
Ravi Kiran K N
53eb6a7502 playback-test: avoid critical on exit
Only free vis_entries array when not null on exit.

https://bugzilla.gnome.org/show_bug.cgi?id=755201
2015-09-18 09:02:48 +01:00
Vikram Fugro
bbe967a278 appsrc: retain the latest caps in queue when flushing
- Retain the latest caps in the internal queue, when
  flushing.
- Add a unit test case for the same.

https://bugzilla.gnome.org/show_bug.cgi?id=754597
2015-09-09 12:27:40 +03:00
Tim-Philipp Müller
917ea30aaf tests: audiodecoder: add unit test for tag handling
https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16 16:34:31 +01:00
George Kiagiadakis
41cb26b0e9 tests/appsink: add test to ensure that the segment returned by pull-preroll/sample is correct
https://bugzilla.gnome.org/show_bug.cgi?id=751147
2015-08-14 19:27:06 +02:00
Edward Hervey
862c85ce4a check: Rename states unit test
Makes it easier to differentiate from other modules states unit test
2015-08-14 11:12:30 +02:00
Thiago Santos
30e9c26b72 tests: audiodecoder: add test to make sure gap is pushed before segment
https://bugzilla.gnome.org/show_bug.cgi?id=753360
2015-08-10 00:21:42 -03:00
Thiago Santos
e59d1308cc videodecoder: push pending events before gap
Push all pending events before pushing the gap. This ensures the
segment is pushed before the gap so it can be properly translated
to the running time

Includes unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=753360
2015-08-10 00:21:37 -03:00
Vineeth T M
56d7ef959e jsseek: fix memory leaks
ctx, list and visual_entries are not being freed
resulting in memory leaks

https://bugzilla.gnome.org/show_bug.cgi?id=752454
2015-07-16 20:23:15 +01:00
Vineeth TM
4bd5d8837a jsseek: fix tag list leak
tags are being leaked while updating the streams in jsseek

https://bugzilla.gnome.org/show_bug.cgi?id=752400
2015-07-15 09:30:50 +01:00
Vineeth TM
8f81e04683 playback-test: fix tag list leak
tags are being leaked while updating the streams in playback-test

https://bugzilla.gnome.org/show_bug.cgi?id=752397
2015-07-14 23:31:06 -03:00
Vineeth T M
07d5e7ab4d playback-test: fix memory leak
context during main and filter list during init
visualization are not being freed resulting in memory leak
and app->vis_entries

https://bugzilla.gnome.org/show_bug.cgi?id=752359
2015-07-14 10:06:10 -03:00
Stian Selnes
1586981b1b rtcpbuffer: Fix validation of packets with padding
The padding (if any) is included in the length of the last packet, see
RFC 3550.

Section 6.4.1:
   padding (P): 1 bit
      If the padding bit is set, this individual RTCP packet contains
      some additional padding octets at the end which are not part of
      the control information but are included in the length field. The
      last octet of the padding is a count of how many padding octets
      should be ignored, including itself (it will be a multiple of
      four).

Section A.2:
   *  The padding bit (P) should be zero for the first packet of a
      compound RTCP packet because padding should only be applied, if it
      is needed, to the last packet.

   *  The length fields of the individual RTCP packets must add up to
      the overall length of the compound RTCP packet as received.

https://bugzilla.gnome.org/show_bug.cgi?id=751883
2015-07-06 12:06:47 +03:00
Wim Taymans
d807515973 tests: fix cpp directives 2015-06-22 16:53:06 +02:00
Wim Taymans
0d811c73e2 tests: add PPC64 abi struct sizes 2015-06-22 16:00:15 +02:00
Jan Schmidt
e57754be9b tests: Fix video libs test for multiview GstVideoInfo change
The GstVideoInfo struct was changed late in integrating the
multiview changes, and I forgot to run and fix the unit test.
2015-06-11 12:21:08 +10:00
Jan Schmidt
7c1da700c4 video: Add multiview/stereo support
Add flags and enums to support multiview signalling in
GstVideoInfo and GstVideoFrame, and the caps serialisation and
deserialisation.

videoencoder: Copy multiview settings from reference input state

Add gst_video_multiview_* support API and GstVideoMultiviewMeta meta

https://bugzilla.gnome.org/show_bug.cgi?id=611157
2015-06-11 12:05:00 +10:00
Jose Antonio Santos Cadenas
9931bef8ca rtcpbuffer: Update package validation to support reduced size rtcp packets
According to this section of the rfc.
https://tools.ietf.org/html/rfc5506#section-3.4.2
The validation should be updated to accept more types of RTCP
packages, with this mask change feedback packages will be also
accepted.

Change-Id: If5ead59e03c7c60bbe45a9b09f3ff680e7fa4868
2015-06-05 10:18:21 +02:00
Edward Hervey
ce16635f46 check: Use GST_CHECK_MAIN () macro everywhere
Makes source code smaller, and ensures we go through common initialization
path (like the one that sets up XML unit test output ...)
2015-06-02 16:14:39 +02:00
Edward Hervey
ee3135c4a6 check: Use GST_CHECK_MAIN () macro everywhere
Makes source code smaller, and ensures we go through common initialization
path (like the one that sets up XML unit test output ...)
2015-06-02 16:04:40 +02:00
George Kiagiadakis
a998d380bd tests: add test for videorate caps renegotiation after a framerate has been calculated and added to caps
The original 0/1 framerate must still be allowed to be configured
on the upstream side of videorate, otherwise future caps renegotiation
is going to fail.

https://bugzilla.gnome.org/show_bug.cgi?id=750032
2015-05-29 15:03:38 +02:00
Tim-Philipp Müller
8fc0e4f55c tests: add back videoscale unit test
Has been removed in 835422b2 as part of porting
things over to the new videoscale API.
2015-05-23 12:04:15 +01:00
Mathieu Duponchelle
2e423dd129 discoverer: Add serialization methods.
[API] gst_discoverer_info_to_variant
[API] gst_discoverer_info_from_variant
[API] GstDiscovererSerializeFlags

+ Serializes as a GVariant
+ Adds a test
+ Does not serialize potential GstToc (s)

https://bugzilla.gnome.org/show_bug.cgi?id=748814
2015-05-19 18:48:07 +02:00
Tim-Philipp Müller
8304893d06 appsrc: optimise caps changing when previously-set caps have not taken effect yet
Only negotiate/change caps once when setting caps twice and
the first-set caps have not been used yet.

Based on patch by Eunhae Choi.

https://bugzilla.gnome.org/show_bug.cgi?id=747517
2015-05-18 13:37:54 +01:00
Tim-Philipp Müller
508ae9c2fc tests: tcp: remove SOCK_CLOEXEC which causes build problems on OS/X
It's not needed here.

https://bugzilla.gnome.org/show_bug.cgi?id=747692
2015-04-26 20:14:53 +01:00
Tim-Philipp Müller
0bedfc51a4 tests: typefindfunctions: add test for UTF-16 MSS manifest typefinding 2015-04-26 14:45:44 +01:00
Tim-Philipp Müller
2891509ec4 tests: define GST_CHECK_TEST_ENVIRONMENT_BEACON
Make sure the test environment is set up.

https://bugzilla.gnome.org//show_bug.cgi?id=747624
2015-04-23 15:57:37 +01:00
Tim-Philipp Müller
0cb6a439da Update .gitignore 2015-04-23 15:42:29 +01:00
Hyunjun Ko
5d90a28d5f tests: rtpbasedepayload: fix crash in test when passing varargs
Need to pass 64 bits where 64 bits are expected.

https://bugzilla.gnome.org/show_bug.cgi?id=748027
2015-04-17 19:47:09 +01:00
Luis de Bethencourt
867c864f94 examples: disconnect scale callback in scrubby
When the position slider's button is released, disconnect the "value_changed"
callback to avoid triggering false seek callbacks.
2015-04-14 15:09:51 +01:00
Luis de Bethencourt
003a0a0ca7 examples: keep scrubby command consistent
scrubby has two options, wav and playbin. Wav takes a file location so make
the playbin option take a file location as well instead of an uri. This also
means the usage help string will be correct for the playbin option.
2015-04-13 17:39:56 +01:00
Luis de Bethencourt
8dc688b039 examples: no need to set intermediate states 2015-04-13 17:39:48 +01:00
Luis de Bethencourt
d9aaafc694 examples: wavparse doesn't need dynamic linking
In scrubby, there is no need to link wavparse with the sink dynamically.
The pad is available when the element is generated.

Change video and audio sinks to the automatically detected sinks.
2015-04-13 17:38:55 +01:00
Luis de Bethencourt
93f29f4e4e examples: remove reference to 0.10 in playrec 2015-04-10 14:31:42 +01:00
Luis de Bethencourt
8eff144e48 examples: remove deprecated function in gtk-videooverlay
gtk_widget_set_double_buffered () has been deprecated since GTK 3.14.
Also, widgets are realized automatically and gtk_wiget_realize () is only
meant to be used in widget implementations.
2015-04-10 13:41:49 +01:00
Luis de Bethencourt
79718aec16 examples: add example description to giosrc-mounting
Also, use GST_MESSAGE_TYPE instead of accessing the GstMessage structure
2015-04-09 16:53:35 +01:00
Luis de Bethencourt
0915cb0e78 examples: reuse variables in encoding example 2015-04-09 11:23:25 +01:00
Luis de Bethencourt
7d147e27c5 examples: remove unused return value in addstream
Removing unused return value of pause_play_stream ().
Fixing code style to satisfy the git hook.
2015-04-08 17:12:27 +01:00
Luis de Bethencourt
2145586ab6 examples: avoid sprinkle running endlessly
Quit sprinkle when there are no more frequencies to remove.
Also rename for readability the check for linking elements.
2015-04-08 15:33:39 +01:00
Edward Hervey
fe0a9ec618 tests: Use AM_TESTS_ENVIRONMENT
Needed by the new automake test runner
2015-04-08 16:15:43 +02:00
Luis de Bethencourt
e254806e4a tests: remove unused filename string from appsink-src2 2015-04-07 15:32:35 +01:00
Luis de Bethencourt
1cee257804 tests: check file exists before running appsink-src 2015-04-07 15:30:30 +01:00
Luis de Bethencourt
4d78375d49 tests: add missing license headers for example apps 2015-04-07 15:17:46 +01:00
Tim-Philipp Müller
0aa0b89aaf tests: appsrc: clean up block_deadlock test and make it work in valgrind
Remove all the bus watch and main loop code from the block_deadlock
test, it's not needed: neither pipeline will ever post an EOS or ERROR
message on the bus, and we're the only ones posting an error, from a
timeout. Might just as well just sleep for a bit and then do whatever
we want to do.

Don't gratuitiously set tcase timeout, just use whatever is the
default (or set via the environment).

Make individual pipeline runs shorter.

Check for valgrind and only do a handful iterations when running
in valgrind, not 100 (each iteration takes about 4s on a core i7).

Make videotestsrc output smaller buffers than the default resolution,
we don't care about the buffer contents here anyway.

Fixes test timeouts when run in valgrind.
2015-04-05 13:53:38 +01:00
Tim-Philipp Müller
46aa47440f tests: multisocketsink: fix flaky unit test
On slower systems, or under high system load (e.g. check-valgrind),
the sending_buffers_with_9_gstmemories test would sometimes fail,
because the read call only returns 32 bytes instead of the full
36 bytes expected. This is because multisocketsink might end up
doing a partial write of 32 bytes first, and then write the
missing 4 bytes later, but since we don't wait for all of data
to be written, there's a short window where our read call in the
unit test might then only receive the 32 bytes written so far,
which makes it deeply unhappy.

Instead, make sure we loop to read all bytes.
2015-04-05 12:59:11 +01:00
Tim-Philipp Müller
73278948a3 tests: basetime: fix timeouts when running under valgrind
This test sets a rather short timeout, increase this when
we run under valgrind. Also add a short sleep to the
fakesrc ! fakesink pipeline to avoid thrashing the CPU,
which would often not stop the main loop when it should.

Also fix wrong (0.10) return value from pad probe callback.
2015-04-04 01:26:17 +01:00
Tim-Philipp Müller
413fc30235 videorate: fix a couple of memory leaks
tests: videorate: fix leak in unit test
2015-04-04 00:49:21 +01:00
Luis de Bethencourt
4ec0d948db examples: add license header to scrubby 2015-04-03 13:22:28 +01:00
Thibault Saunier
ae86dec9ca videorate: Detect framerate if not forced to variable downstream
In case upstream does not provide videorate with framerate information,
it will detect the current framerate from the buffer it received,
but if downstream forces the use of variable framerate (most probably
through the use of a caps filter with framerate = 0 / 1), videorate will
respect that.

And add some unit tests

https://bugzilla.gnome.org/show_bug.cgi?id=734424
2015-04-02 17:13:24 -04:00
Luis de Bethencourt
0ac3ad0abb playback-test: update deprecated API 2015-04-02 14:32:15 +01:00
Luis de Bethencourt
3a46270e23 tests: fix deprecated API in colorkey and videooverlay 2015-04-02 12:27:54 +01:00
Luis de Bethencourt
1d9d60e0ea examples: fix deprecated API in scrubby 2015-04-02 11:14:08 +01:00
Luis de Bethencourt
bd2a86e353 tests: use elapsed label of volume example 2015-04-01 16:00:28 +01:00
Luis de Bethencourt
84638199e7 tests: fix deprecated API in audio volume example 2015-04-01 15:02:13 +01:00
Luis de Bethencourt
fc74875edc jsseek: update deprecated GTK API 2015-04-01 14:41:27 +01:00
Luis de Bethencourt
fc5d98c3bc jsseek: switch deprecated GtkTable for GtkGrid 2015-04-01 14:39:33 +01:00
Luis de Bethencourt
c168f2558b tests: update deprecated GTK API in audiomix 2015-04-01 11:10:57 +01:00
Nicolas Dufresne
b7facbaf22 basedepay: Handle initial gaps and no clock-base
When generating segment, we can't assume the first buffer is actually
the first expected one. If it's not, we need to adjust the segment to
start a bit before.

Additionally, we if don't know when the stream is suppose to have
started (no clock-base in caps), it means we need to keep everything in
running time and only rely on jitterbuffer to synchronize.

https://bugzilla.gnome.org/show_bug.cgi?id=635701
2015-03-27 19:03:41 -04:00
Nicolas Dufresne
802ad73103 basedepayload: Fix generated segment
This fixes playback position in RTSP.

https://bugzilla.gnome.org/show_bug.cgi?id=635701
2015-03-26 17:43:47 -04:00
Sebastian Dröge
15cc12b0b9 multisocketsink: Allocate enough memory on the stack in the test
Otherwise we just overwrite other things on the stack and cause crashes.
2015-03-16 20:41:19 +01:00
Wim Taymans
fabf4890b8 allocators: add allocators test 2015-03-15 16:41:21 +01:00
William Manley
ccd4472e2a Add test_that_multisocketsink_and_socketsrc_preserve_meta
This test is in a seperate commit to the previous two because it depends
on and tests the functionality in both.
2015-03-14 13:23:40 +01:00
William Manley
a297b0545f socketsrc: Add connection-closed-by-peer signal
This provides notification that the socket in use was closed by the peer
and gives an opportunity to replace it with a new one which is not
closed, allowing reading from many sockets in order.

I use this in pulsevideo to implement reconnection logic to handle the
pulsevideo service dieing, such that is can be restarted without
disrupting downstream.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=739546
2015-03-13 20:05:00 +01:00
William Manley
7c10499ecd tcp: Add element socketsrc
`socketsrc` can be considered a source counterpart to `multisocketsink`.
It can be considered a generalization of `tcpclientsrc` and
`tcpserversrc`:  it contains all the logic required to communicate over
the socket but none of the logic for creating the sockets/establishing
the connection in the first place, allowing the user to accomplish this
externally in whatever manner they wish making it applicable to other
types of sockets besides TCP.

This commit essentially copies the implementation directly from
tcpserversrc.  Later patches will tidy the implementation up and
re-implement `tcpclientsrc` and `tcpserversrc` in terms of `socketsrc`.

See https://bugzilla.gnome.org/show_bug.cgi?id=739546
2015-03-13 20:05:00 +01:00
William Manley
b8232a7467 multisocketsink: Map GstMemorys individually when sending
If a buffer is made up of non-contiguous `GstMemory`s `gst_buffer_map`
has to copy all the data into a new `GstMemory` which is contiguous.  By
mapping all the `GstMemory`s individually and then using scatter-gather
IO we avoid this situation.

This is a preparatory step for adding support to multisocketsink for
sending file descriptors, where a GstBuffer may be made up of several
`GstMemory`s, some of which are backed by a memfd or file, but I think this
patch is valid and useful on its own.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=746150
2015-03-13 16:20:50 +01:00
Song Bing
1942870257 streamsynchronizer: Should wait state change complete before start another state change
Should wait state change complete before start another state change.
Can't ensure can received async-done message when state change from PLAYING to PAUSED.

https://bugzilla.gnome.org/show_bug.cgi?id=736655
2015-03-11 15:51:02 +00:00
Tim-Philipp Müller
c53ba4beeb Fix double semicolons 2015-03-10 09:27:08 +00:00
Wim Taymans
72fd1345ad check: add another generic converter test
Run conversion and scaling with borders.
2015-03-04 12:29:45 +01:00
Wim Taymans
e0a192d3dd video-converter: don't reuse the input line when adding borders
When we need to add borders, we need a writable input line, so
don't reuse the source memory directly.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745207
2015-03-04 12:29:45 +01:00
Tim-Philipp Müller
35bd289be3 tests: fix crashes in {audio,video}{decoder,encoder} tests on 32-bit
Don't feed 64-bit integer variable into vararg function that expects
an unsigned integer to go with GST_TAG_TRACK_NUMBER. This would
cause crashes on 32-bit platforms, and if not that then test
failures if the comparisons fail later (at least on big endian
platforms).
2015-02-27 20:26:43 +00:00
Tim-Philipp Müller
980f5e17e9 tests: pbutils: more checking of returned description strings
https://bugzilla.gnome.org/show_bug.cgi?id=673976
2015-02-27 14:30:01 +00:00
Song Bing
eeea911c2e streamsynchronizer: Unit test for streamsynchronizer's EOS handling
Test that a pipeline can change from PLAYING to PAUSED and back in
the following scenarios:
1. One track reach EOS after pushed some buffers while another track
still pushes buffers
2. One track reach EOS without buffers while another track still pushes
buffers

https://bugzilla.gnome.org/show_bug.cgi?id=736655
2015-02-16 14:34:35 +02:00
Tim-Philipp Müller
4e1a43d4ea pbutils: descriptions: add H.265 profile to description if available
https://bugzilla.gnome.org/show_bug.cgi?id=673976
2015-02-15 20:05:28 +00:00
Tim-Philipp Müller
58d19cb7ca pbutils: descriptions: add MPEG-4 video profile to description if available
https://bugzilla.gnome.org/show_bug.cgi?id=673976
2015-02-15 19:03:58 +00:00
Tim-Philipp Müller
001bd78957 pbutils: descriptions: add Dirac/VC-2 profile to description if available
https://bugzilla.gnome.org/show_bug.cgi?id=673976
2015-02-15 18:50:48 +00:00
Tim-Philipp Müller
1d528459be pbutils: descriptions: add H.264 profile to description if available
https://bugzilla.gnome.org/show_bug.cgi?id=673976
2015-02-15 18:50:43 +00:00
Tim-Philipp Müller
1b4bd6e451 rtspmessage: map headers we know that are added by string to their enum
That way we can look them up by their field enum later as well.
2015-02-09 18:03:43 +00:00
Tim-Philipp Müller
ef7f537a80 tests: rtsp: add some unit tests for new GstRTSPMessage API 2015-02-09 17:50:32 +00:00
Jan Schmidt
836dcd93b8 playback-test: Support new skip seek flags
Support the new SEEK_TRICKMODE_KEY_UNITS and SEEK_TRICKMODE_NO_AUDIO
flags added to core

https://bugzilla.gnome.org/show_bug.cgi?id=735666
2015-01-28 03:29:49 +11:00
Thiago Santos
24b04aade4 examples: playback: add labels with supported seek range
Add the supported seeking range in the advanced seek area.
Also implement seeking querying the pipeline to retrieve those
values and show to the user. It is done in a smaller frequency
compared to the position/duration querying.
2015-01-14 10:35:34 -03:00
Thiago Santos
dfc82f3466 tests: audiodecoder: tests for caps query implementation
Copied from videodecoder tests and updated to audio features
2014-12-17 19:15:24 -03:00
Thiago Santos
8085352fb3 videodecoder: expose getcaps virtual function
Allows subclasses to do custom caps query replies.

Also exposes the standard caps query handler so subclasses can just
extend on top of it instead of reimplementing the caps query proxying.

https://bugzilla.gnome.org/show_bug.cgi?id=741263
2014-12-17 19:15:23 -03:00
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
c77a21b1fa examples: improve playback-test help text a little
And allow pipeline type to be specified as string.
2014-12-15 12:13:08 +00: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
Jan Schmidt
3c17b86639 reverse-play: fix seek to end when starting reverse
Start reverse playback by actually seeking to the end of
the file.
2014-12-08 18:53:35 +11: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
Sebastian Dröge
90eb93c2ef Don't compare booleans for equality to TRUE and FALSE
TRUE is 1, but every other non-zero value is also considered true. Comparing
for equality with TRUE would only consider 1 but not the others.
2014-12-01 09:51:12 +01:00
Tim-Philipp Müller
b03cfdffb1 tests: remove libs/video and videoconvert test from valgrind blacklist
Seem to work fine.
2014-11-28 13:31:39 +00:00
Tim-Philipp Müller
4bddc9276b tests: don't run orc/* tests under valgrind
They just seem to blow up for some reason that needs investigating.
2014-11-28 13:29:37 +00:00
Jan Schmidt
16b28c0d47 test-reverseplay: Use uridecodebin for input
Work with any installed URI handler
Add some more debug output
2014-11-28 22:03:37 +11:00
Jan Schmidt
b508867795 tests: Add reverse playback verification test
Plays a requested URI forward to EOS, then backward and
checks that the same timestamp range(s) are covered.
2014-11-20 02:08:45 +11:00
Tim-Philipp Müller
dc3d68d9c2 tests: make overlay blending test slightly less boring 2014-11-16 19:28:54 +00:00
Tim-Philipp Müller
07f254e4b2 tests: add visual overlay composition blending test
Shows visual result of blending a logo on top of
a video surface, esp. when the logo is partially
outside of the video surface and needs to be
clipped.

https://bugzilla.gnome.org/show_bug.cgi?id=739281
2014-11-16 16:30:53 +00: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
835422b2ea videoscale: port to new API 2014-11-10 11:45:52 +01:00
Sebastian Dröge
480e661618 capsfilter-renegotiation: Use assertions from libcheck for more information on failures 2014-11-09 10:47:14 +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
William Manley
5b0ec93e99 tests: Add TCP pipelines test
There don't seem to be any unit tests for the socket handling elements.  As
I am about to attempt some refactorings I've added some basic tests which
exercise some of the happy-paths in tcpclientsrc, tcpserversrc,
tcpserversink and tcpclientsink.  They should let me know if I've caused
serious breakage.

They are far from exhaustive but are sufficient for me to have caught a few
memory-leaks in the existing code.

https://bugzilla.gnome.org/show_bug.cgi?id=739544
2014-11-07 10:14:07 +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
Tim-Philipp Müller
6b1dcd2ec0 tests: dist header file needed for ABI checks on powerpc32
Fixes 'make check' on debian powerpc32 buildbot:
libs/libsabi.c:95:26: fatal error: struct_ppc32.h: No such file or directory
2014-11-06 09:41:38 +00:00
Danny Song
6ccef9d223 test : fix leaks in adder unit test
https://bugzilla.gnome.org/show_bug.cgi?id=739640
2014-11-05 18:08:44 +00:00
Ravi Kiran K N
e0028c77f6 tests/playback: quit from main loop
Listen for eos and error signal to quit main loop.

https://bugzilla.gnome.org/show_bug.cgi?id=739346
2014-10-31 13:50:34 +00:00
Ravi Kiran K N
d86aba27ce tests/playback: correct state change checking
Correct the test apps check if result of state change is not failure as the
state change can happen async

https://bugzilla.gnome.org/show_bug.cgi?id=739346
2014-10-31 13:49:08 +00: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
cd1f1c4973 examples: add new appsink example to .gitignore 2014-10-26 21:31:36 +00:00
Tim-Philipp Müller
a82e99b093 tests: fix playbin-complex test on big endian 2014-10-24 13:09:42 +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
Tim-Philipp Müller
7834d733bc tests: fix adder check on big-endian 2014-10-24 12:26:40 +01:00
Wim Taymans
b2fd20c416 video: move videoconvert code to video library
Move the conversion code used in videoconvert to the video library
and expose a simple but generic API to do arbitrary conversion. It can
currently do colorspace conversion but the plan is to add videoscale to
it as well.

See https://bugzilla.gnome.org/show_bug.cgi?id=732415
2014-09-24 15:59:39 +02:00
Wim Taymans
5edb36415a tests: add orc test for videoconvert 2014-09-22 10:42:47 +02:00
Edward Hervey
03707d0162 example/overlay: Specify minimum gdk version
Avoids deprecation warnings (such as for gtk_widget_set_double_buffered()
which became deprecated from 3.14)
2014-09-22 08:44:08 +02: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
Nicola Murino
646352e959 appsrc: Add example that shows gst_app_src_push_sample() usage 2014-09-12 14:12:28 +03:00
Thiago Santos
2157497405 tests: textoverlay: add test to reproduce fakesink scenario
Adds a new test to textoverlay to make sure it can properly handle
elements that have ANY caps but fail to add the overlay meta in
the allocation query.

This test verifies that textoverlay won't use the caps features even
knowing that the overlay meta is accepted when querying the downstream
caps because it also needs downstream to confirm by putting the meta
in the allocation query.

https://bugzilla.gnome.org/show_bug.cgi?id=735800
2014-09-01 15:25:56 -03:00
Matthieu Crapet
48f7a40078 tests: fix decodebin signal used in icles/playback/ decodetest, test and test5
Since release 1.1.4, "new-decoded-pad" no longer exists.
2014-08-12 09:28:41 +03:00
Thiago Santos
a080c0ebbf basetextoverlay: rework caps negotiation
Make textoverlay negotiate caps more correctly.

1) Check what caps we received in the video-sink
2) If it already has the overlay meta -> use it directly
3) If it doesn't, textoverlay try adding the overlay meta and using it,
   if downstream doesn't support it, just use what is received in the
   video-sink
4) Check if the allocation query also supports the meta to enable
   really using it

Before it wasn't really doing renegotiation of any kind, just
re-checking if it should use the overlay meta or not

Also had to update the caps in the test as memory:SystemMemory seems
to be required when you use a caps feature otherwise intersection/subset
checks will fail.

https://bugzilla.gnome.org/show_bug.cgi?id=733916
2014-08-11 11:40:44 -03:00
Thiago Santos
c9904fb639 encodebin: delay missing encoder error as passthrough is still possible
Set up a fakesink with a pad probe to replace the missing encoder to detect
if encoding was really required and only error out in this case. Otherwise
just let passthrough branch work.

This delays the error posting from the set_state function to when buffers
are really flowing. Unit test updated accordingly

https://bugzilla.gnome.org/show_bug.cgi?id=650652
2014-08-11 10:30:58 -03:00
Sebastian Rasmussen
9995054e80 tests: Add missing unrefs of objects after use
Unreffing the objects returned by gst_bin_get_by_name() and
gst_pipeline_get_use() were missing in several tests, so add these.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734359
2014-08-06 15:18:56 +02:00
Edward Hervey
2ca269ac6b check: Fix include path of rtp checks
Fixes make distcheck
2014-07-31 16:11:25 +02:00
Sebastian Dröge
960f676407 playbin: Fix unit test for last change
It will successfully asynchronously go to PAUSED now and
later fail.
2014-07-21 09:35:36 +02:00
Sebastian Dröge
a67d745de2 playbin-complex: Change template name from %d to the more common %u 2014-07-21 09:35:36 +02:00
Wim Taymans
9a25e59e12 tests: codec-select: fix compilation 2014-07-02 15:50:23 +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
Sebastian Rasmussen
c44a705631 tests: codec-select: Plug element name memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=732593
2014-07-02 09:11:09 +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
783195ccef decodebin: aggregate buffering messages
Aggregate buffering messages to only post the lower value
to avoid setting pipeline to playing while any multiqueue
is still buffering.

There are 3 scenarios where the entries should be removed from
the list:

1) When decodebin is set to READY
2) When an element posts a 100% buffering (already implemented)
3) When a multiqueue is removed from decodebin.

For item 3 we don't need to handle it because this should only
happen when either 1 is hapenning or when it is playing a
chained file, for which number 2 should have happened for the
previous stream to finish

https://bugzilla.gnome.org/show_bug.cgi?id=726423
2014-05-29 18:59:30 -03: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
e5b4e30baa examples: playback-test: fix crashes when setting buffer-size
playbin's buffer-size property takes a gint, not a gint64,
so only pass the bits expected to the vararg function, or
the terminator might not be found, leading to crashes, esp.
with negative numbers.

Spotted by Ravi Kiran K N <ravi.kiran@samsung.com>

https://bugzilla.gnome.org/show_bug.cgi?id=729617
2014-05-06 08:14:02 +01:00
Tim-Philipp Müller
bb74096870 examples: fix indentation of playback-test 2014-05-06 08:13:52 +01:00
Tim-Philipp Müller
a8396ce5db Revert "playback-test: Set buffer-size only for non-negative size"
This reverts commit 07a637e284.
2014-05-06 08:13:24 +01:00
Ravi Kiran K N
07a637e284 playback-test: Set buffer-size only for non-negative size
https://bugzilla.gnome.org/show_bug.cgi?id=729617
2014-05-06 09:09:13 +02:00
Руслан Ижбулатов
6fd68e0b12 tests: fix printf format compiler warning in playback test on win32
https://bugzilla.gnome.org/show_bug.cgi?id=729515
2014-05-04 18:21:22 +01:00
Tim-Philipp Müller
134f51894a Add new unit test binary to .gitignore 2014-05-04 18:14:54 +01:00
Sebastian Dröge
9e3672d99d textoverlay: Link unit test with the local version of the library, not an installed one 2014-05-03 18:57:38 +02: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
13954ce3e5 audioresample: Fix memory leaks in test 2014-04-15 19:31:28 +02:00
Sebastian Dröge
846a4a1038 videotestsrc: Fix memory leak in test 2014-04-15 13:54:45 +02:00
Sebastian Dröge
1822a6b31c encodebin: Fix memory leak in test 2014-04-15 13:48:46 +02:00
Sebastian Dröge
1266fd0046 audioconvert: Fix leaks in unit test 2014-04-15 13:03:34 +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
Thiago Santos
b7cf2fa571 tests: decodebin: port old decodebin2 test for parser and decoder linking
They were in the old decodebin2.c tests file and were never ported.
Now we can get rid of decodebin2.c
2014-03-16 14:36:51 -03:00
Arun Raghavan
f4cab18ec1 playback: Add video-/audio-filter properties
This provides an audio-filter and video-filter property to allow
applications to set filter elements/bins. The idea is that these will
e
applied if possible -- for non-raw sinks, the filters will be skipped.

If the application wishes to force the application of the filters, this
can be done by setting the new flag introduced on playsink -
GST_PLAY_FLAG_FORCE_FILTERS.

https://bugzilla.gnome.org/show_bug.cgi?id=679031
2014-03-16 18:38:29 +01:00
Matthieu Bouron
c904661dc3 tests: add textoverlay passthrough with composition feature unit tests
https://bugzilla.gnome.org/show_bug.cgi?id=721953
2014-03-05 20:39:01 +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
Stefan Sauer
2337311216 encodebin: simplify tests
Also use the profile helper for the ogg profile here.
2014-02-18 20:52:11 +01:00
Stefan Sauer
465dfe4920 encodebin: refactor tests
Add a new test to demo how to get missing plugin message.
Split some tests that unneccesarily munge unrelated checks into one test.
2014-02-16 22:16:17 +01:00
Sebastian Rasmussen
09644d0e4a tests: Don't build disabled plugins' check tests
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723492
2014-02-11 21:00:30 +01:00
Sebastian Dröge
ce59ac561e playbin: Fix memory leak in unit test 2014-02-10 16:33:35 +01:00
Sebastian Dröge
97d0927a9c opus: Remove unused variable from unit test 2014-02-08 20:08:29 +01:00
Sebastian Dröge
e22243b2d0 videoscale: Fix compiler warning in unit test
error: implicit conversion from enumeration type
'GstFormat' to different enumeration type 'GstVideoFormat'
2014-02-08 17:11:54 +01:00
Sebastian Dröge
4046a880de videoconvert: Fix compiler warning in unit test
error: implicit conversion from enumeration type
'GstFormat' to different enumeration type 'GstVideoFormat'
2014-02-08 17:11:04 +01:00
Sebastian Dröge
856d27338b playback-test: Fix types for comparisons
Storing a 64 bit integer in a 32 bit integer and then checking
for the error cases might not be ideal.

error: comparison of constant -9223372036854775808 with
expression of type 'guint' (aka 'unsigned int') is always true
2014-02-08 17:07:15 +01:00
Wim Taymans
428f10cf57 playback-test: allow seeking outside of the range
For download buffer, allow seeking outside of the already downloaded
area.
2014-02-07 15:35:38 +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
Sebastian Rasmussen
0f8f852776 jsseek: Add missing HAVE_X check
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723507
2014-02-04 13:58:47 +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
Sebastian Dröge
5dd8e9cdd4 examples: Port Qt examples to Qt5 2014-01-20 09:46:15 +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