Commit graph

1860 commits

Author SHA1 Message Date
Xabier Rodriguez Calvar
0341f04ce1 videodirection: interface for rotation and flip
A GstVideoOrientationMethod enumeration is also provided for the
admitted property values.

https://bugzilla.gnome.org/show_bug.cgi?id=768687
2016-08-25 10:19:13 +03:00
Nirbheek Chauhan
5c4f4ac1bd Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-20 11:09:51 +01:00
Tim-Philipp Müller
9cbdaa8c27 tests: ignore new videotimecode test binary 2016-08-20 11:01:04 +01:00
Carlos Rafael Giani
232902369c rawparse: Fix and extend unit tests
* Add caps change test to unit tests
* Cleanup leftover buffers after each unit test
* Add missing rawvideoparse entry in .gitignore

https://bugzilla.gnome.org/show_bug.cgi?id=769637
2016-08-18 10:53:58 +03:00
Carlos Rafael Giani
e5b70d384c rawvideoparse: Compute plane offsets & strides if no custom ones are set
This is useful to ensure that the offsets and strides are computed if
only width, height, format etc. in the property config are set.

https://bugzilla.gnome.org/show_bug.cgi?id=769797
2016-08-18 09:21:16 +03:00
Vivia Nikolaidou
ab35d7394e videotimecode: Added support for SMPTE time code metadata
Can be attached as GstMeta into a video frame.

https://bugzilla.gnome.org/show_bug.cgi?id=766419
2016-08-04 18:59:40 +03:00
Guillaume Desmottes
12c268b7c5 decodebin_next: fix caps and tags leaks
The getters are (transfer full).

https://bugzilla.gnome.org/show_bug.cgi?id=769270
2016-08-03 17:49:45 +02:00
Carlos Rafael Giani
d508525119 rawparse: Add new raw audio and video parser elements
The new rawaudioparse and rawvideoparse elements are based on GstBaseParse
and completely replace audioparse and videoparse

https://bugzilla.gnome.org/show_bug.cgi?id=767011
2016-07-26 13:44:39 +03:00
Tim-Philipp Müller
5044bf79ae Add more files to .gitignore 2016-07-23 14:42:30 +01:00
Tim-Philipp Müller
ffa9f04bb2 tests: appsink: add minimal test for new pull with timeout functions
https://bugzilla.gnome.org/show_bug.cgi?id=768852
2016-07-18 17:26:26 +01:00
Guillaume Desmottes
c1d55f29a1 playbin3: fix leaks of collection returned by message parse API
gst_message_parse_stream_collection() and
gst_message_parse_streams_selected() actually return a reffed
GstStreamCollection.

https://bugzilla.gnome.org/show_bug.cgi?id=768776
2016-07-15 16:43:07 +01:00
Guillaume Desmottes
54e4551cd8 videoscale: fix bus leak in test
gst_bus_add_signal_watch() takes a ref on the bus which should be
released using gst_bus_remove_signal_watch().

https://bugzilla.gnome.org/show_bug.cgi?id=768718
2016-07-12 13:12:19 +03:00
Seungha Yang
50f74daa2f appsrc: Remove trailing whitespace
https://bugzilla.gnome.org/show_bug.cgi?id=768510
2016-07-11 09:54:11 +03:00
Thijs Vermeir
b2c6808a7f tests: correctly print guintptr on mac 2016-07-06 16:16:22 +02:00
Edward Hervey
d514e79bee playback: New elements
With contributions from Jan Schmidt <jan@centricular.com>

* decodebin3 and playbin3 have the same purpose as the decodebin and
playbin elements, except make usage of more 1.x features and the new
GstStream API. This allows them to be more memory/cpu efficient.

* parsebin is a new element that demuxers/depayloads/parses an incoming
stream and exposes elementary streams. It is used by decodebin3.
It also automatically creates GstStream and GstStreamCollection for
elements that don't natively create them and sends the corresponding
events and messages

* Any application using playbin can use playbin3 by setting the env
variable USE_PLAYBIN3=1 without reconfiguration/recompilation.
2016-06-30 14:15:47 +02:00
Tim-Philipp Müller
d3d2e8b94a tests: discoverer: handle missing ogg/codec plugins gracefully
https://bugzilla.gnome.org/show_bug.cgi?id=767859
2016-06-21 18:04:23 +01:00
Sebastian Dröge
26f63db498 discoverer: Only allow serializing OK discoverer infos to GVariants
They will be incomplete otherwise and we can't generate the full serialized
information, and instead will crash somewhere on the way.

https://bugzilla.gnome.org/show_bug.cgi?id=767859
2016-06-21 10:24:15 +03:00
Mikhail Fludkov
27e7ca3389 opusdec: test for PLC timestamp when FEC is enabled. 2016-06-16 11:01:06 +01:00
Mikhail Fludkov
8d4f79b640 audiodecoder: fix invalid timestamps when PLC and delay
Elements inherited from GstAudioDecoder, supporting PLC and introducing
delay produce invalid timestamps. Good example is opusdec with in-band FEC
enabled. After receiving GAP event it delays the audio concealment until
the next buffer arrives. The next buffer will have DISCONT flag set which
will make GstAudioDecoder to reset it's internal state, thus forgetting
the timestamp of GAP event. As a result the concealed audio will have the
timestamp of the next buffer (with DISCONT flag) but not the timestamp
from the event.
2016-06-16 11:01:04 +01:00
Paulo Neves
5dd720e064 exiftag: Increase serialized geo precision
The serialization of double typed geographical
coordinates to DMS system supported by the exif
standards was previously truncated without need.

The previous code truncated the seconds part of
the coordinate to a fraction with denominator
equal to 1 causing a bug on the deserialization
when the test for the coordinate to be serialized
was more precise.

This patch applies a 10E6 multiplier to the numerator
equal to the denominator of the rational number.

Eg. Latitude = 89.5688643 Serialization

DMS Old code = 89/1 deg, 34/1 min, 7/1 sec
DMS New code = 89/1 deg, 34/1 min, 79114800UL/10000000UL

Deserialization

DMS Old code = 89.5686111111
DMS New code = 89.5688643

The new test tries to serialize a higher precision
coordinate.

The types of the coordinates are also guint32 instead
of gint like previously. guint32 is the type of the
fraction components in the exif.

https://bugzilla.gnome.org/show_bug.cgi?id=767537
2016-06-13 09:29:52 +03:00
Stian Selnes
1335ccd228 video-color: Fix colorimetry IS_UNKNOWN
Fix issue with colorimetry default indicies not being in sync with the
actual table causing IS_UNKNOWN() to sometimes fail.

https://bugzilla.gnome.org/show_bug.cgi?id=767163
2016-06-02 17:14:50 +01:00
Joan Pau Beltran
abb88801e7 video: add IYU2 format
This existed in 0.10 and is needed by dc1394src.

IYU2 format is a YUV fully-sampled packed format similar to v308
but with different component order (U-Y-V instead of Y-U-V).

http://www.fourcc.org/yuv.php#IYU2

https://bugzilla.gnome.org/show_bug.cgi?id=763026#c5
2016-06-01 12:07:05 +01:00
Tim-Philipp Müller
ece702920f tests: playbin: add test for new "element-setup" signal
https://bugzilla.gnome.org/show_bug.cgi?id=578933
2016-05-16 09:52:35 +01:00
Tim-Philipp Müller
9ed483e33b tests: playsink: add minimal test for playsink element
Attempt to reproduce leak.

https://bugzilla.gnome.org/show_bug.cgi?id=755867
2016-05-14 16:02:16 +01:00
Guillaume Desmottes
1b2f9f2c3f vorbistag: fix buffer leaks in tests
It internally uses gst_check_chain_func() so we
should call gst_check_drop_buffers() when tearing down tests to free
the buffers which have been exchanged through the pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=766226
2016-05-14 10:47:33 +03:00
Guillaume Desmottes
c6eb9df930 appsrc: fix buffer leaks in tests
It internally uses gst_check_chain_func() so we
should call gst_check_drop_buffers() when tearing down tests to free
the buffers which have been exchanged through the pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=766226
2016-05-14 10:47:33 +03:00
Guillaume Desmottes
e17299290a audiorate: fix buffer leaks in tests
It internally uses gst_check_chain_func() so we
should call gst_check_drop_buffers() when tearing down tests to free
the buffers which have been exchanged through the pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=766226
2016-05-14 10:47:33 +03:00
Thiago Santos
60c765174f opusdec: intersect with the filter before returning on getcaps
So upstream gets a smaller set to decide upon as it is what it requested
with the filter

https://bugzilla.gnome.org/show_bug.cgi?id=765684
2016-05-02 14:29:25 -03:00
Thiago Santos
7a5797d3a6 opusdec: improve getcaps to return all possible rates
The library is capable of converting to different rates.

Includes tests.

https://bugzilla.gnome.org/show_bug.cgi?id=765684
2016-05-02 14:29:25 -03:00
Thiago Santos
8375ed7763 tests: opus: remove apparently useless macro in tests 2016-05-02 14:23:54 -03:00
Aurélien Zanelli
928bb3b6f4 exiftag: handle GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM tag
This tag match the EXIF_TAG_FOCAL_LENGTH_IN_35_MM_FILM exif tag and is
stored on a short. Hence there is a precision loss compared to the
GstTag which is a double value.

https://bugzilla.gnome.org/show_bug.cgi?id=753930
2016-04-28 12:13:15 -03:00
Tim-Philipp Müller
694423fd3c tests: vorbisenc: fix with CK_FORK=no 2016-04-19 14:18:07 +01:00
Josep Torra
62655029c8 .gitignore: add test-resample binary 2016-04-15 13:08:38 +02:00
Tim-Philipp Müller
f05ea1e6a6 tests: libscpp: test RTP/RTCP buffer init macros with C++ compiler 2016-04-06 17:57:28 +01:00
Mikhail Fludkov
7a206336dd rtpbasedepayload: look at ssrc before sequence numbers
Doing so prevents us dropping buffers in the rare, but possible, situations,
when the stream changes SSRC and new sequence numbers does not differ
much from the last sequence number from previous SSRC. For example:
ssrc - 0xaaaa 101,102,103,104 ssrc - 0xbbbb 102, 103, 104, 105...
In the scenario above we don't want to drop the first 3 packets of
0xbbbb stream.

https://bugzilla.gnome.org/show_bug.cgi?id=764459
2016-04-03 11:49:16 +03:00
Tim-Philipp Müller
778589cd5b test: fix indentation 2016-03-30 22:41:54 +01:00
Wim Taymans
c0f22132aa tests: add resample test 2016-03-28 13:25:51 +02:00
Jan Schmidt
fd2a14144a subparse: WebVTT parsing support
WebVTT is a new subtitle format for HTML5 video. In this first
version of the parser the cue settings are parsed but only stored in
the internal parser state structure. Later on these settings could be
part of the GstBuffer metadata.

https://bugzilla.gnome.org/show_bug.cgi?id=629764
2016-03-25 00:58:42 +11:00
Vineeth TM
44b70ca3a1 base: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763075
2016-03-24 14:25:41 +02:00
Stian Selnes
93196092d1 rtcpbuffer: Add API for APP packets
https://bugzilla.gnome.org/show_bug.cgi?id=761944
2016-03-24 14:24:11 +02:00
Haakon Sporsheim
d8e9a711a0 rtcpbuffer: Add profile-specific extension API.
https://bugzilla.gnome.org/show_bug.cgi?id=761950
2016-03-24 14:22:54 +02:00
Sebastian Dröge
65390b5129 multihandlesink: Remove useless streamheader storage
We don't do anything with it but always get them from the caps anyway, so
stop storing them and having complicated logic around that.

https://bugzilla.gnome.org/show_bug.cgi?id=763278
2016-03-14 12:45:33 +02:00
Tim-Philipp Müller
f331412a37 opus: move Opus audio decoder and encoder from -bad to -base
Hook into build system after moving history.

https://bugzilla.gnome.org/show_bug.cgi?id=756282
2016-02-26 00:20:10 +00:00
Tim-Philipp Müller
a2eb430010 Merge branch 'plugin-move-opus'
Move Opus decoder and encoder from -bad to -base.

https://bugzilla.gnome.org/show_bug.cgi?id=756282
2016-02-25 23:51:42 +00:00
Sebastian Dröge
16e53defe5 audiovisualizer: Use the library instead of including the source file
Fixes build now that the shader enum GType has moved to a different file.
2016-02-26 00:02:49 +02:00
Stian Selnes
85f297d648 videoencoder: Fix leak when pre_push does not return OK
https://bugzilla.gnome.org/show_bug.cgi?id=761951
2016-02-13 10:09:45 -03:00
Thiago Santos
681b2b8d81 tests: extend the AM_TESTS_ENVIRONMENT from check.mak
To get the CK_DEFAULT_TIMEOUT defined for all tests.

Also replaces a 120 timeout that was set.

https://bugzilla.gnome.org/show_bug.cgi?id=761472
2016-02-05 19:15:16 -03:00
Tim-Philipp Müller
183610c035 build: remove nonsensical check for freetype
The examples need Gtk+, nothing uses freetype directly.
2016-01-25 17:40:23 +00:00
Tim-Philipp Müller
1e4f67472e tests: libvisual: make run faster
Reduce resolution, which shouldn't make any difference
to what's tested here. Makes test finish in less than
half the time it took before (8s vs. 21s).
2016-01-25 16:22:17 +00:00
Vineeth TM
2aabbc2163 tests:audioconvert: Fix integer overflow build error
value of 32768L << 16 and 1L << 31 is 2147483648
but it exceeds the positive range of int which is 2147483647
resulting in integer overflow error. Use G_GINT64_CONSTANT instead of L.

https://bugzilla.gnome.org/show_bug.cgi?id=760769
2016-01-19 09:56:25 +02:00
Koop Mast
17b16e7a83 tests: audioconvert: fix test compilation with clang
With clang 3.7.1 on FreeBSD:
elements/audioconvert.c:650:12: error: shifting a negative signed value is
      undefined [-Werror,-Wshift-negative-value]
      (-32 << 16) + (1 << 15), (-32 << 16) - (1 << 15),
       ~~~ ^

https://bugzilla.gnome.org/show_bug.cgi?id=760134
2016-01-06 01:13:32 +00:00
Tim-Philipp Müller
e5fb7275c2 tests: fix indentation of various unit tests 2016-01-06 01:12:13 +00:00
Hyunjun Ko
682b523652 sdp: add helper fuctions from/to sdp from/to caps
<gstsdpmessage.h>
GstCaps*       gst_sdp_media_get_caps_from_media   (const GstSDPMedia *media, gint pt);
GstSDPResult   gst_sdp_media_set_media_from_caps   (const GstCaps* caps, GstSDPMedia *media);
gchar *        gst_sdp_make_keymgmt                (const gchar *uri, const gchar *base64);
GstSDPResult   gst_sdp_message_attributes_to_caps  (GstSDPMessage *msg, GstCaps *caps);
GstSDPResult   gst_sdp_media_attributes_to_caps    (GstSDPMedia *media, GstCaps *caps);

<gstmikey.h>
GstMIKEYMessage * gst_mikey_message_new_from_caps  (GstCaps *caps);
gchar *           gst_mikey_message_base64_encode  (GstMIKEYMessage* msg);

https://bugzilla.gnome.org/show_bug.cgi?id=745880
2015-12-31 17:11:57 +02:00
Stefan Sauer
898940a37f audioconvert: add a test for gap handling 2015-12-29 14:40:32 +01:00
Stefan Sauer
7bbfa39ada audioconvert: fix passthrough operation
We did not take the sample size into account. Rearrange the tests to have more
conversion test and an extra test case for passthrough operations.

Fixes #759890
2015-12-29 14:40:32 +01:00
Stefan Sauer
267e7ba1d9 tests: remove commented code from audioconvert test
This is just what we have in gst_check_buffer_data().
2015-12-27 19:41:43 +01:00
Thiago Santos
8b05f682b0 examples: playback-test: remove unused variables
audiosink and videosink string variables are unused
2015-12-18 19:01:09 -03:00
Tim-Philipp Müller
29cd7966b7 tests: rtpbasedepayload: add test for seqnum gap discont setting
The problem was triggered only when the input buffers were not
writable, so add extra ref to test this code path.
2015-12-11 10:40:49 +00:00
Tim-Philipp Müller
e8a403d181 tests: tags: add unit test for ID3v2 PRIVATE_DATA tag extraction
https://bugzilla.gnome.org/show_bug.cgi?id=730926
2015-11-20 20:20:25 +00:00
Ognyan Tonchev
7a702df863 rtspconnection: Add support for parsing custom headers
https://bugzilla.gnome.org/show_bug.cgi?id=758235
2015-11-18 00:15:32 +00:00
Reynaldo H. Verdejo Pinochet
0c95b0a738 Remove unnecessary NULL checks before g_free()
g_free() is NULL-safe
2015-11-17 14:50:27 -08:00
Vineeth TM
b0b0536f91 tests:video: Fix overlay rectangle and buffer leak
Created overlay rectangle is not being freed in video tests
pix2 buffer is being created and not freed

https://bugzilla.gnome.org/show_bug.cgi?id=757927
2015-11-11 15:47:24 +01:00
Wim Taymans
e3f0f3b91e audio-converter: move audio converter to audio libs
Move the audio-converter helper to the audio library.
2015-11-06 17:53:22 +01:00
Andreas Frisch
4a85438e5b tests: Add a test for video blending over transparent frames
And fix the test_overlay_blend test where we blend over a
transparent frame and where expecting wrong results

https://bugzilla.gnome.org/show_bug.cgi?id=681447
2015-11-04 22:17:35 +01:00
Sebastian Dröge
387839c57e opus: Remove invalid unit test
Opus headers should never be in-band, so don't test for correct
handling of that.
2015-11-04 00:14:13 +02:00
Wim Taymans
9e15c89564 audioconvert: change multiplier for int<->float conversion
Use (1 << 31) as the multiplier for int<->float conversions. This makes
sure that int->float conversions always end up with floats between
[-1.0, 1.0].
For the conversion from float to int, this multiplier will give the complete
int range after we perform clipping.
Change the unit test to take this into consideration.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=755301
2015-11-03 12:12:08 +01:00
Luis de Bethencourt
fcfb9a7794 examples: use GST_STIME_FORMAT for GstClockTimeDiff
GST_STIME_FORMAT is more appropriate for GstClockTimeDiff since it can
handle negative values better.

https://bugzilla.gnome.org/show_bug.cgi?id=757480
2015-11-02 15:50:50 +00:00
Eunhae Choi
04eeaef7a4 tests: typefindfunctions: fix error leaks
https://bugzilla.gnome.org/show_bug.cgi?id=757008
2015-10-23 11:48:47 +03:00
Stian Selnes
0a668c1866 rtpbuffer: Add map flag to skip padding
Encrypted RTP buffers may contain encrypted padding, hence it's
necessary to have an option to relax the validation in order to
successfully map the buffer.

When the flag GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING is set
gst_rtp_buffer_map() will map the buffer like if padding is not
present.

https://bugzilla.gnome.org/show_bug.cgi?id=752705
2015-10-15 22:42:37 +03:00
Sebastian Dröge
b60ab758e4 Revert "audioencoder: timestamp headers same as first buffer and use duration 0"
This reverts commit dd4d6d9ed5.

It breaks ogg muxing and the vorbisenc unit test.
2015-10-12 14:02:58 +03:00
Havard Graff
dd4d6d9ed5 audioencoder: timestamp headers same as first buffer and use duration 0
https://bugzilla.gnome.org/show_bug.cgi?id=754224
2015-10-11 11:04:53 +01:00
Havard Graff
001ca740a7 audioencoder-tests: port to use GstHarness
https://bugzilla.gnome.org/show_bug.cgi?id=754223
2015-10-11 11:03:14 +01:00
Havard Graff
6d211eb58b audiodecoder-test: port to using GstHarness
https://bugzilla.gnome.org/show_bug.cgi?id=754196
2015-10-11 11:01:11 +01:00
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