Commit graph

3136 commits

Author SHA1 Message Date
Thiago Santos
8816764112 souphttpsrc: reduce reading latency by using non-blocking read
Non-blocking read will return the amount of data available without
blocking to wait for the full requested size.

The downside is that now it souphttpsrc needs to have a waiting
mechanism in case there is no data available yet to avoid busy
looping arond the inputstream.
2016-05-15 06:36:25 -03:00
Thiago Santos
183695c61a souphttpsrc: refactor to use Soup's sync API
Replace the async API with the sync API to remove all the extra mainloop
and context handling. Currently it blocks reading until 'blocksize'
bytes are available but that can be improved by using:

https://developer.gnome.org/gio/unstable/GPollableInputStream.html#g-pollable-input-stream-read-nonblocking

https://bugzilla.gnome.org/show_bug.cgi?id=693911
2016-05-14 08:40:12 -03:00
Sebastian Dröge
83d5797a58 dv: Use correct pixel-aspect-ratio values
The previous ones resulted in odd display aspect ratios and were different
from the ones used by e.g. ffmpeg. The new ones now result in display aspect
ratios of 4:3 and 16:9.

https://bugzilla.gnome.org/show_bug.cgi?id=765946
2016-05-05 13:37:27 +03:00
Mario Sanchez Prada
8740313504 vpxenc: Properly handle frames with too low duration
When a frame's duration is too low, calling gst_util_uint64_scale()
to scale its value can result into it being truncated to zero, which
will cause the vpx encoder to return an VPX_CODEC_INVALID_PARAM error
when trying to encode.

To prevent this from happening, we simply ignore the duration when
encoding if it becomes zero after scaling, logging a warning message.

https://bugzilla.gnome.org/show_bug.cgi?id=765391
2016-04-23 13:56:56 +01:00
Tim-Philipp Müller
5e7a4b4d62 mpg123: fix build with msvc
Fix syntax errors when compiling against cerbero-provided libmpg123
headers. We do the same as the libmpg123 internal visual studio
build here.

mpg123.h(1378): error C2143: syntax error: missing ')' before '('
mpg123.h(1378): error C2081: 'ssize_t': name in formal parameter list illegal
mpg123.h(1378): error C2143: syntax error: missing ')' before '*'
mpg123.h(1378): error C2091: function returns function
mpg123.h(1378): error C2143: syntax error: missing '{' before '*'
mpg123.h(1378): error C2059: syntax error: ')'
mpg123.h(1379): error C2143: syntax error: missing ')' before '*'
mpg123.h(1379): error C2365: 'off_t': redefinition; previous definition was 'typedef'
...
2016-04-15 19:55:03 +01:00
Jan Schmidt
46a3c9ac8b Revert "pulsesink: uncork if needed upon commit"
This reverts commit 0dd46accf6.

With some audiosinks, starting the ringbuffer on the first commit
causes audio glitches at startup by starting to output segments
from the ringbuffer before it has been filled / fully prerolled. This
doesn't usually happen with pulsesink because we map the pulseaudio
ringbuffer directly, but we should keep things consistent with
other sinks with regards to startup latency, plus it gives more
headway to avoid glitching, should the initial 2nd segment take
more than 10ms to generate.

https://bugzilla.gnome.org/show_bug.cgi?id=657076
2016-04-16 02:21:14 +10:00
Sebastian Dröge
bc2d4c4c31 souphttpclientsink: If no proxy is set by properties, use the default libsoup proxy resolver
That is, use whatever system settings there might exist. This is the same
behaviour we use in the HTTP source.
2016-04-15 11:36:36 +03:00
Nirbheek Chauhan
570ce4f7c8 gtk: Fix logging in base widget and fix desc of GL sink
Set a default category for gtkgstbasewidget lest the logging go to the 'default'
category where it can't be found easily
2016-03-27 12:04:16 +03:00
Matthew Waters
3faf049250 gtk/gl: don't assert when gdk doesn't provide a GL context
Allows the application to check whether gtkglsink is supported by setting
the element to READY.

https://bugzilla.gnome.org/show_bug.cgi?id=764148
2016-03-25 17:49:14 +11:00
Nicolas Dufresne
284d723a9a vpxdec: Use threads on multi-core systems
This is a redo of commit b848c1b6ff. The
code was lost when the elements where ported to use a baseclass.

https://bugzilla.gnome.org/show_bug.cgi?id=764169
2016-03-24 19:30:44 -04:00
Vineeth TM
c7dae7d057 gtkbasesink: post message to application for unhandled keyboard/mouse events
https://bugzilla.gnome.org/show_bug.cgi?id=763403
2016-03-24 14:58:24 +02:00
Vineeth TM
acb1b44ee0 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Vineeth TM
32e346da06 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Vineeth TM
ab281e6038 ugly: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763082
2016-03-24 14:38:13 +02:00
Vineeth TM
31c1ed8b9b ugly: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763082
2016-03-24 14:38:13 +02:00
Vineeth TM
1071309870 good: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763076
2016-03-24 14:32:20 +02:00
Sergey Borovkov
c2f17d4834 qml: Fix leak of the OpenGL contexts
[Matthew Waters]: add NULL checks before unreffing

https://bugzilla.gnome.org/show_bug.cgi?id=762999
2016-03-03 13:13:26 +11:00
Matthew Waters
6c6a9cf509 qt: use a static_cast instead of dynamic one
The dynamic_cast is a little but of overkill as the app will still crash if it
fails in the later g_assert.

Allows compilation with -fno-rtti

https://bugzilla.gnome.org/show_bug.cgi?id=762526
2016-02-24 21:20:18 +11:00
Sebastian Dröge
49f4631909 gst: Handle gst_pad_get_current_caps() returning NULL gracefully 2016-02-23 18:27:47 +02:00
Dave Craig
211c8492b3 gst: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()
Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=759539
2016-02-23 18:11:42 +02:00
Sergey Borovkov
472b396528 qmlglsink: Schedule onSceneGrpahInitialized to execute on render thread
onSceneGraphInitialized() is called from non render thread currently when
scene graph is already initialized.

https://bugzilla.gnome.org/show_bug.cgi?id=761003
2016-02-22 20:26:41 +11:00
Vineeth TM
777d773c23 plugins-bad: Fix example pipelines
rename gst-launch --> gst-launch-1.0
replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**)
fix caps in examples

https://bugzilla.gnome.org/show_bug.cgi?id=759432
2016-02-16 10:40:40 +00:00
Tim-Philipp Müller
1ab089dfc1 mpg123: still reset pending audio info on hard flush
Follow-up to previous commit.

https://bugzilla.gnome.org/show_bug.cgi?id=752431
2016-02-16 10:40:40 +00:00
Jason Litzinger
9ffe409138 mpg123: fix handling of sample rate change during playback
If the sample rate of the media changes, the resulting flush will
clear the has_next_audioinfo flag, and the caps won't be sent
downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=752431
2016-02-16 10:40:40 +00:00
Thiago Santos
e8110b7167 audiodecoders: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an
accept-caps query

Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec,
          sbcdec, adpcmdec, sirendec
2016-02-16 10:40:40 +00:00
Tim-Philipp Müller
b344d7ba47 Remove obsolete Android build cruft
This is not needed any longer.
2016-02-16 10:40:40 +00:00
Tim-Philipp Müller
e42f8627b6 mpg123: fix compiler warning and simplify checks in set_caps
https://bugzilla.gnome.org/show_bug.cgi?id=740195
2016-02-16 10:40:40 +00:00
Carlos Rafael Giani
2fe38328d2 mpg123: rework set_format code so mpg123audiodec works with decodebin/playbin
The old code was using gst_caps_normalize() and was generally overly
complex. Simplify by picking sample rate and number of channels from
upstream and the sample format from the allowed caps. If the format caps
is a list of strins, just pick the first one. And if the srcpad isn't
linked yet, use the default format (S16).

https://bugzilla.gnome.org/show_bug.cgi?id=740195
2016-02-16 10:40:40 +00:00
Tim-Philipp Müller
bbd6b14d46 Fix up one-element lists in template caps 2016-02-16 10:40:39 +00:00
Carlos Rafael Giani
387e6480d6 mpg123: improved error report and checks
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2016-02-16 10:40:39 +00:00
Sebastian Dröge
04e05eb93f mpg123audiodec: Require caps to be set before any data processing 2016-02-16 10:40:39 +00:00
Edward Hervey
f383e63beb mpg123: Remove dead assignment
harder ? :)
2016-02-16 10:40:39 +00:00
Sebastian Dröge
0f5461be15 gst: Add better support for static plugins 2016-02-16 10:40:39 +00:00
David Schleef
773092940d mpg123: Add conditional on API version for new enum 2016-02-16 10:40:39 +00:00
Matthew Waters
aaacc9fe54 gtk(gl)sink: remove the signal handlers on finalize
It's possible that the sink element will be freed before the widget is
destroyed.  When the widget was eventually destroyed, it was attempting to
access member variables of the freed sink struct which resulted in undefined
behaviour.

Fix by disconnecting our signal on finalize.

https://bugzilla.gnome.org/show_bug.cgi?id=762098
2016-02-16 20:09:08 +11:00
Matthew Waters
caafdd8ca2 glsyncmeta: separate out gpu/cpu waits.
CPU waits are more expensive and are only required if the CPU is ever going to
access the data. GPU waits perform inter-context synchronisation and are cheaper
as they don't require CPU intervention.
2016-02-09 12:30:25 +11:00
Nicolas Dufresne
905e28a0f3 jpegdec: Don't pass the same data over and over
We already pass the entire frame to the decoder. If the decoder ask for
more data, don't pass the same data again as this leads to infinit loop.
Instead, simply fail the fill function to signal the problem with that
frame. It will then be skipped properly.

https://bugzilla.gnome.org/show_bug.cgi?id=761670
2016-02-08 10:19:31 -05:00
Matthew Waters
0d851a66af qt: specify that we currently only take 2D textures
Fixes black screen video playback on android without a caps filter.
2016-01-27 16:13:28 +11:00
Sebastian Dröge
70db210315 vp8enc: Ensure that we always have valid frame user data before using it
Otherwise we're going to dereference NULL pointers.
2016-01-20 13:41:33 +02:00
Sebastian Dröge
7eee775d5f vpxdec: Unref frame in all code paths of handle_frame()
https://bugzilla.gnome.org/show_bug.cgi?id=760666
2016-01-20 10:02:48 +02:00
Thibault Saunier
01f995b8dd vpxenc: Unref frame on ERROR
All code paths for handle_frame() must somehow take ownership of the frame, be
it by actually unreffing, forwarding the frame elsewhere or storing it for
later.

http://bugzilla.gnome.org/show_bug.cgi?id=760666
2016-01-20 10:02:44 +02:00
Thibault Saunier
17838829eb vp8enc: Return FLOW_ERROR when an error accures
FALSE would mean FLOW_OK

https://bugzilla.gnome.org/show_bug.cgi?id=760666
2016-01-16 08:58:48 +01:00
Sergey Borovkov
1d41990b26 qml: Mark material dirty when texture buffer is updated
Qt might not redraw the scene otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=758286
2016-01-15 14:11:52 +11:00
Sebastian Dröge
bed1f0a0a6 vpxdec: Initialize buffer variable to NULL
False positive but trivial to fix and possibly causing compiler warnings at
some point in the future too.

CID 1346535
2015-12-29 17:58:38 +02:00
Ravi Kiran K N
58fcc0a0ab dvdec: Remove unused fields
Remove unused fields frame_len and space

https://bugzilla.gnome.org/show_bug.cgi?id=759614
2015-12-18 11:30:19 +01:00
Luis de Bethencourt
2c54ea5ba9 dv1394: log error if failed to set socket status flag
Log an error message if failed to set write or read socket as
non-blocking.

CID 1139608
CID 1139609
2015-12-16 11:48:30 +00:00
Nicolas Dufresne
0e6a8838dc qtsink: Add configured GL cflags to the build
We don't directly link to GL in the element, though we use GL headers.
For this reason we need to include the proper GL headers path. This
prevent this element from using a different GL header then libgstgl.
2015-12-15 19:28:22 -05:00
Nicolas Dufresne
9808cff566 vpx: Add missing headers in Makefile.am
This fixes distcheck.

https://bugzilla.gnome.org/show_bug.cgi?id=755510
2015-12-15 14:27:22 -05:00
Prashant Gotarne
5c7eb0f886 vpx: created common baseclass GstVPXEnc
GstVP8Enc and GstVP9Enc has almost 80% code in common.
created common baseclass GstVPXEnc for GstVP8Enc and GstVP9Enc

https://bugzilla.gnome.org/show_bug.cgi?id=755510
2015-12-15 14:03:29 -05:00
Nicolas Dufresne
90dcc3921a vpxdec: Remove unneeded add video_meta
This also remove copies for VP8, which was not correctly in place
in previous related patch.
2015-12-15 12:57:53 -05:00
Prashant Gotarne
75fb614c1e vpx: created common base class GstVPXdec for vpx decoders
Base class for the vp8dec and vp9dec.

https://bugzilla.gnome.org/show_bug.cgi?id=755510
2015-12-15 12:06:45 -05:00
Xavier Claessens
10044b1d0f souphttpsrc: Add GTlsInteraction property
https://bugzilla.gnome.org/show_bug.cgi?id=750709
2015-12-14 14:56:02 -05:00
Matthew Waters
28d088fa2d glmemory: base classify and add the pbo memory on top
The base class is useful for having multiple backing memory types other
than the default.  e.g. IOSurface, EGLImage, dmabuf?

The PBO transfer logic is now inside GstGLMemoryPBO which uses GstGLBuffer
to manage the PBO memory.

This also moves the format utility functions into their own file.
2015-12-14 16:35:32 +11:00
Nicolas Dufresne
189c291805 vpxdec: Use GstMemory to avoid copies
With the VPX decoders it's not simple to use downstream buffer pool,
because we don't know the image size and alignment when buffers get
allocated. We can though use GstAllocator (for downstream, or the system
allocator) to avoid a copy before pushing if downstream supports
GstVideoMeta. This would still cause a copy for sink that requires
specialized memory and does not have a GstAllocator for that, though
it will greatly improve performance for sink like glimagesink and
cluttersink. To avoid allocating for every buffer, we also use a
internal buffer pool.

https://bugzilla.gnome.org/show_bug.cgi?id=745372
2015-12-04 17:29:15 -05:00
Roman Nowicki
1dc889c6d0 qml: reuse existing GstQSGTexture
Fixes a memory leak leaking the texture objects.

https://bugzilla.gnome.org/show_bug.cgi?id=758286
2015-11-20 11:18:43 +11:00
Matthew Waters
aca25b521f qml: activate the wrapped context when binding
Mitigates the following critical

gst_gl_context_thread_add: assertion 'context->priv->active_thread == g_thread_self ()' failed
2015-11-20 11:09:45 +11:00
Roman Nowicki
21ca4ac9d3 qml: proper initialization if scene is already initialized
The scene graph can be initialized when the we receive window handle change
notification and so we will not receive a scenegraph initialization
notification.  Initialize ourself in this case.

https://bugzilla.gnome.org/show_bug.cgi?id=758337
2015-11-20 09:41:56 +11:00
Vineeth TM
bd701b8ee5 souphttpclientsink: Fix error leak and handle error
g_thread_try_new allows for possiblity of failures. In case it fails,
error is not handled and leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=758260
2015-11-18 09:31:42 +02:00
Nicolas Dufresne
b848c1b6ff vpxdec: Use threads on multi-core systems
This adds an automatic mode to the threads property of vpxdec in order to
use as many threads as there is CPU on the platform. This brings back
GStreamer VPX decoding performance closer to what is achieved by other
players, including Chromium.

https://bugzilla.gnome.org/show_bug.cgi?id=758195
2015-11-17 12:27:31 -05:00
Reynaldo H. Verdejo Pinochet
f58841c24e shout2: remove unnecessary NULL checks before g_free() 2015-11-15 01:43:08 -08:00
Reynaldo H. Verdejo Pinochet
2b7a1b4bb9 vp9enc: remove unnecessary NULL check before g_free() 2015-11-15 01:43:08 -08:00
Reynaldo H. Verdejo Pinochet
97a94b02ae vp8enc: remove unnecessary NULL check before g_free() 2015-11-15 01:43:08 -08:00
Reynaldo H. Verdejo Pinochet
c9039751f1 souphttpsrc: remove unnecessary NULL checks before g_free() 2015-11-15 01:43:08 -08:00
Vineeth TM
7ef9dd3761 jpegdec: fix output state memory leak
When jpeg_finish_decompress is called, output state reference is being created.
But if there is any failures in finishing decompress, it jumps to setjmp,
and at that point state was not referenced. Resulting in leak of output state.
Hence adding another setjmp after output state is referenced.
Similarly adding another setjmp to unmap the frame in case error happens before
finish_decompress

https://bugzilla.gnome.org/show_bug.cgi?id=753087
2015-11-10 07:54:08 -03:00
Matthew Waters
4a52b58b78 gtk: add the overlaycomposition feature to the template caps
There is a possibility that the _get_caps impl will be called with the
feature in the filter caps which when interecting with the template,
will return EMPTY and therefore fail negotiation.

https://bugzilla.gnome.org/show_bug.cgi?id=757854
2015-11-10 15:40:25 +11:00
Nirbheek Chauhan
e686ec0c97 pulse: Don't leak caps and structures in the device provider 2015-11-05 17:54:48 +00:00
Matthew Waters
b2718cbd81 gl: be consistent in gobject boilerpate
GST_GL_IS_* vs GST_IS_GL_*

git grep -l 'GST_GL_IS_' | xargs sed -i 's/GST_GL_IS_/GST_IS_GL_/g'
2015-10-19 15:15:30 +11:00
Matthew Waters
5f94356ce1 gl: be consistent in gobject boilerpate
GST_GL_IS_* vs GST_IS_GL_*

git grep -l 'GST_GL_IS_' | xargs sed -i 's/GST_GL_IS_/GST_IS_GL_/g'
2015-10-19 15:15:30 +11:00
Matthew Waters
2882f6b90b gtk: separate out the widget/window destroy callbacks
Fixes assertion due to the sink_finalize() being run before the widget destroy
callback.

https://bugzilla.gnome.org/show_bug.cgi?id=755969
2015-10-17 16:09:53 +11:00
Matthew Waters
136f375f01 glshader: port to using GstGLSLStage objects for string management
A GstGLShader is now simply a collection of stages that are
compiled and linked together into a program.  The uniform/attribute
interface has remained the same.
2015-10-15 21:27:57 +11:00
Sebastian Dröge
51adc9d889 souphttpsrc: EOS immediately if we have an empty seek segment
https://bugzilla.gnome.org/show_bug.cgi?id=748316
2015-10-14 16:56:26 +03:00
Stavros Vagionitis
21c6da6764 souphttpsrc: Make non-inclusive segment boundaries inclusive
The problem is that the filesrc and souphttpsrc are behaving
differently regarding the calculation of the segment boundaries. The
filesrc is using a non-inclusive boundaries, while the souphttpsrc
uses inclusive. Currently the hlsdemux calculates the boundaries as
inclusive, so for this reason there is no problem with the souphttpsrc,
but there is an issue in the filesrc.

The GstSegment is non-inclusive, so the proposed solution is to use
non-inclusive boundaries in the hlsdemux in order to be consistent.
Make the change in the hlsdemux, will break the souphttpsrc, which
will expect inclusive boundaries, but the hlsdemux will offer
non-inclusive. This change makes sure that the non-inclusive
boundaries are converted to inclusive.

https://bugzilla.gnome.org/show_bug.cgi?id=748316
2015-10-14 16:56:22 +03:00
Graham Leggett
af25e3cc93 souphttpclientsink: Add the retry and retry-delay properties
These allow a failed request to be retried after the given number of seconds
instead of failing the pipeline. Take account of the Retry-After header if
present. Add retries parameter that controls the number of times an HTTP
request will be retried before failing.

https://bugzilla.gnome.org/show_bug.cgi?id=756318
2015-10-14 15:23:00 +03:00
Vineeth TM
6eb8db8afd souphttpclientsink: Check if soup message is created
If soup message is not created then the same should not be passed
on, which is resulting in segfault. Hence throwing a warning message
and returning

https://bugzilla.gnome.org/show_bug.cgi?id=755326
2015-10-12 16:53:29 +03:00
Vineeth TM
2ee7b2b94d souphttpclientsink: Check if location being set is valid
Adding a check in set_property to find if the location uri is valid
and printing warning if not valid.

https://bugzilla.gnome.org/show_bug.cgi?id=755326
2015-10-12 16:53:28 +03:00
Vineeth TM
cece69003c souphttpclientsink: Fix memory leaks during failures
freeing streamheader_buffers and sent_buffers during failure cases.

https://bugzilla.gnome.org/show_bug.cgi?id=755326
2015-10-12 16:53:28 +03:00
Vineeth TM
b1d4e7e222 souphttpclientsink: Replace redundant free_buffer_list function
Removing free_buffer_list and replacing it with already available function
g_list_free_full

https://bugzilla.gnome.org/show_bug.cgi?id=755326
2015-10-12 16:53:28 +03:00
Vineeth TM
4000d97a81 gdkpixbufdec: Fix pixbuf_loader leak during failures
https://bugzilla.gnome.org/show_bug.cgi?id=756219
2015-10-08 15:01:53 +01:00
Matthew Waters
c6d03bc7d4 qt: add support for building on osx/ios
Including:
- Necessary configure checks
- Necessary compile time platform checks
- Necessary runtime qt iOS/OSX platform detection

https://bugzilla.gnome.org/show_bug.cgi?id=755100
2015-10-02 22:29:45 +10:00
Matthew Waters
ab5f9c551f gtk: add some GL debug statements to show up in GL traces 2015-09-30 12:39:47 +10:00
Luis de Bethencourt
c95bb94fc2 qtsink: explicitely fallthrough switch statement
In case ret is False, fallthrough to default case.

CID #1320705
2015-09-29 13:37:08 +01:00
Tim-Philipp Müller
d77891406d gdkpixbufsink: don't leak old pixel buffer when setting a new overlay
https://bugzilla.gnome.org/show_bug.cgi?id=755773
2015-09-29 11:12:48 +01:00
Tim-Philipp Müller
6c09710292 flacenc: avoid potential string overflow
We don't necessarily have full control over the input tags, so
it's possible that the ISRC tag contains a longer string than
expected, in which case we'd write over the end of the static-size
13 byte buffer that is FLAC__StreamMetadata_CueSheet_Track::isrc.
Make sure to only copy the ISRC if it's not too long, and make
sure the buffer we write to is always NUL-terminated by using
g_strlcpy().

CID 1324931.
2015-09-28 20:25:22 +01:00
Matthew Waters
38e30dc631 gtk: fix assertion when the element has no peer
When proxying keyboard/navigation/mouse events, only unref a successfully
retreived peer pad.

https://bugzilla.gnome.org/show_bug.cgi?id=755738
2015-09-29 00:27:30 +10:00
Luis de Bethencourt
704f97defd qml: remove overwritten value
Value in tex is overwritten before being used. Removing it.

CID 1320715

https://bugzilla.gnome.org/show_bug.cgi?id=754253
2015-09-28 18:17:22 +10:00
Matthew Waters
d47398de3b qt: add support for building/running on android
Including:
- Necessary configure checks
- Necessary compile time platform checks
- Necessary runtime qt android platform detection
- Escaping GLsync definition with Qt's GLES2 implementation

https://bugzilla.gnome.org/show_bug.cgi?id=754466
2015-09-28 16:47:00 +10:00
Matthew Waters
5f8a587ddc qt: don't use CPPFLAGS for tools that cannot use them
For example moc will bail out when given arguments it does not
know about.  The moc specific MOC_CPPFLAGS can still be used
to pass flags to moc.

https://bugzilla.gnome.org/show_bug.cgi?id=754466
2015-09-28 16:47:00 +10:00
Matthew Waters
e29df60665 qt: rename library to include gst prefix
libqtsink -> libgstqtsink

https://bugzilla.gnome.org/show_bug.cgi?id=754466
2015-09-28 16:47:00 +10:00
Jan Schmidt
866c86dd37 Fix some compiler warnings when building with G_DISABLE_ASSERT
Touches rtpmanager and gdkpixbufsink
2015-09-26 22:18:26 +10:00
Sebastian Dröge
16fe5f43c0 gtk: Only run from the main thread in stop() if we created the window
We're not doing anything at all from the main thread in other cases.
2015-09-24 18:51:39 +02:00
Thibault Saunier
e80765c928 gtk: When setting format check if pending format changed
In case the format changed fast and the pending format is different
than the currently set but the currently set is equal to the pending
one we could end up having mismatch between the finally set format
and the data stream format.

https://bugzilla.gnome.org/show_bug.cgi?id=755542
2015-09-24 16:50:38 +02:00
Thibault Saunier
f08f8d77f8 gtk: Do not forget to release OBJECT_LOCK on error path
https://bugzilla.gnome.org/show_bug.cgi?id=755542
2015-09-24 15:57:26 +02:00
Thibault Saunier
edebbb709f gtk: Factor out a function to run a function on main thread
https://bugzilla.gnome.org/show_bug.cgi?id=755251
2015-09-24 12:03:01 +02:00
Thibault Saunier
c3f7272929 gtk: Marshall state changes in the main thread
Gtk is not MT safe thus we need to make sure that everything is done
in the main thread when working with it.

https://bugzilla.gnome.org/show_bug.cgi?id=755251
2015-09-24 12:03:01 +02:00
Thibault Saunier
afdea505a0 gtksink: Do not show window until we reach the PAUSED state
https://bugzilla.gnome.org/show_bug.cgi?id=755459
2015-09-23 12:08:18 +02:00
Thibault Saunier
04cf80aa04 gtksink: Do not re destroy the GtkWindow if destroyed by the user
Otherwise we will get an ASSERT.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=755249
2015-09-21 13:03:53 +02:00
Thibault Saunier
a006d5aabb gtkglsink: Hide and clean the GtkWindow we might create
When stopping the sink we should always hide the window.

https://bugzilla.gnome.org/show_bug.cgi?id=755249
2015-09-19 12:31:49 +02:00
Vineeth T M
35812bce51 gl: Fix GError leaks during failures
https://bugzilla.gnome.org/show_bug.cgi?id=755140
2015-09-17 11:52:55 +02:00
Matthew Waters
f1cb602476 gtk, qt: more specifically define the compile time requirements
Otherwise we could include headers/configurations that will
never been installed.

https://bugzilla.gnome.org/show_bug.cgi?id=754732
2015-09-10 13:11:06 +10:00
Matthew Waters
115691c508 gtk, qt: more specifically define the compile time requirements
Otherwise we could include headers/configurations that will
never been installed.

https://bugzilla.gnome.org/show_bug.cgi?id=754732
2015-09-10 13:11:06 +10:00
Matthew Waters
579b734346 qt: use our function table instead of directly calling gl functions
Otherwise when building with --as-needed we would need to link to
a GL or GLES library.

https://bugzilla.gnome.org/show_bug.cgi?id=754732
2015-09-10 00:33:40 +10:00
Thibault Saunier
6a119aec8d gtk: Do not consider GtkEvents as handled
Applications might still want to use them
after the sink transformed them into
GstNavigation events
2015-09-04 16:25:44 +02:00
Nirbheek Chauhan
e99c591dc9 qmlsink: Ensure that at least one windowing system is available
Otherwise, we'll just crash at runtime because the gl context is NULL

https://bugzilla.gnome.org/show_bug.cgi?id=754108
2015-08-31 23:16:07 +01:00
Tim-Philipp Müller
f96d22bd45 gtk, qt, gl: fix typo in debug and error messages 2015-08-31 18:06:31 +01:00
Tim-Philipp Müller
9846984c63 gtk, qt, gl: fix typo in debug and error messages 2015-08-31 18:06:31 +01:00
Vineeth TM
1d23930cd7 wavpackdec: fix taglist memory leak
When passing the taglist to gst_audio_decoder_merge_tags, the reference is increased
by audiodecoder and the caller should free the taglist being passed.

https://bugzilla.gnome.org/show_bug.cgi?id=753903
2015-08-21 10:22:14 +03:00
Sebastian Dröge
69c4630f1d gtk/gl: Use our GL function table instead of directly calling GL functions
Otherwise we would have to link the plugin to the GL libraries directly.
2015-08-19 13:55:00 +03:00
Thiago Santos
13d49d9b3e flacenc: actually return true for accept-caps query handling 2015-08-17 14:33:35 -03:00
Thiago Santos
0899529222 flacenc: remove single entry if from loop
Iterate from the 2nd channel on and create the 1 channel struct
outside to make loop structure simpler and only slightly faster.
2015-08-16 14:30:57 -03:00
Thiago Santos
a00546e078 flacenc: implement proper accept-caps
Should just compare with what can be immediatelly accepted by
the element. flacenc can't renegotiate so if it has a caps already
it should only accept if it is that caps otherwise just use the
template caps
2015-08-16 14:30:57 -03:00
Thiago Santos
3553493d96 flacenc: improve sink pad template caps
Removes the need for custom caps query handling and makes it more
correct from the beginning on the template. It is a bit uglier
to read because there is 1 entry per channel but makes code easier
to maintain.
2015-08-16 14:30:57 -03:00
Thiago Santos
a1aa942acf audioencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: speexenc, wavpackenc, mulawenc, alawenc
2015-08-16 14:30:57 -03:00
Thiago Santos
1b27badcfd videoencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: jpegenc, pngenc, vp8enc, vp9enc, y4menc
2015-08-16 14:30:57 -03:00
Thiago Santos
ef773697a8 audioencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: amrnbenc, lamemp3enc, twolamemp2enc
2015-08-15 22:15:26 -03:00
Thiago Santos
f781e62e09 audioencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: amrnbenc, lamemp3enc, twolamemp2enc
2015-08-15 22:15:26 -03:00
Thiago Santos
65676c22ee audiodecoders: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an
accept-caps query

Elements: flacdec, speexdec, wavpackdec, mulawdec, alawdec
2015-08-15 11:46:34 -03:00
Thiago Santos
16fbd4f86f videodecoders: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an
accept-caps query

Elements: jpegdec, pngdec, vp8dec, vp9dec
2015-08-15 11:46:32 -03:00
Nicolas Dufresne
b9e27180ec glsink: Enable sync meta on pools we offer
As the upload is asynchronous, we need to enable the sync meta to
gain correct rendering. The buffer pool receiver don't know about
that.
2015-08-15 15:55:08 +02:00
Nicolas Dufresne
aaf14659c1 gtkglsink: Add overlay composition support
Rendering composition overlay in GL with additional high resolution
overlay being added.
2015-08-15 15:55:08 +02:00
Nicolas Dufresne
cf44f5013a gtkglsink: Fix unsafe handling of buffer life time
We need to keep the active buffer (the one we have retreive a
texture id from) otherwise it's racy and upstream may upload
new content before we have rendered or during later redisplay.
2015-08-15 15:55:08 +02:00
Nicolas Dufresne
9afab22dd9 gtkglsink: Remove reset path
The reset path is bogus and there is no reason to get rid of these
things during resize.
2015-08-15 15:55:08 +02:00
Tim-Philipp Müller
98527a6ea2 vp8enc, vp9enc: reset multipass file index when stopping encoder
Fixes multipass encoding when re-using the same element/pipeline
for subsequent encoding runs.

https://bugzilla.gnome.org/show_bug.cgi?id=747728
2015-08-15 11:21:02 +01:00
Tim-Philipp Müller
0e10e92953 vp9enc: provide support for multiple pass cache files
Some files may provide different caps insight of one stream. Since
vp9enc support caps reinit, we should support cache reinit too.
If more then file cache file will be created, the naming will be:
cache cache.1 cache.2 ...

Based on patch by: Oleksij Rempel <linux@rempel-privat.de>

https://bugzilla.gnome.org/show_bug.cgi?id=747728
2015-08-15 11:09:42 +01:00
Oleksij Rempel
abc33c928f vp8enc: provide support for multiple pass cache files
Some files may provide different caps insight of one stream. Since vp8enc
support caps reinit, we should support cache reinit too.
If more then file cache file will be created, the naming will be:
cache
cache.1
cache.2
...

https://bugzilla.gnome.org/show_bug.cgi?id=747728
2015-08-14 11:40:58 +01:00
Thiago Santos
cb852cd128 souphttpsrc: remove unnecessary if, g_free is null safe 2015-08-14 06:43:13 -03:00
Alex Ashley
9dcc7d9cac souphttpsrc: add property to set HTTP method
To allow souphttpsrc to be use HTTP methods other than GET
(e.g. HEAD), add a "method" property that is a string. If this
property is not set, GET is used.

https://bugzilla.gnome.org/show_bug.cgi?id=752413
2015-08-14 06:37:55 -03:00
Matthew Waters
f277cb0498 gtk: fix motion event name
s/motion/mouse/

Fixes hover interaction with DVD menus
2015-08-12 00:25:35 +02:00
Matthew Waters
68dd460c4e gtk: correct navigation events for window scaling
i.e. take into account the possiblity of scaling in the sink
or through GDK_SCALE.

Fixes DVD Menus with a scaled gtkwidget
2015-08-12 00:25:35 +02:00
Matthew Waters
6164fb5b45 gtk: implement GstNavigation interface
Now we can push key/mouse input into the pipeline for DVD use cases.
2015-08-11 13:38:03 +02:00
Matthew Waters
b8bb4cc50f qml: implement the required multiple GL context synchonisation
From GStreamer's GL context into the QML context
2015-08-08 17:30:42 +02:00
Tim-Philipp Müller
e1143041ed soup: fix typo in translated string
https://bugzilla.gnome.org/show_bug.cgi?id=753240
2015-08-04 16:28:17 +01:00
Eunhae Choi
8b6a261703 souphttpsrc: handle empty http proxy string
1) If the system http_proxy environment variable is not set
or set to an empty string, we must not set proxy to avoid
http connection error.

2) In case of proxy property setting, if user want to clear
the proxy setting, they should be able to set it to NULL or
an empty string again, so this is fixed too.

3) Check if the proxy string was parsed correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=752866
2015-07-31 10:54:02 +01:00
Ravi Kiran K N
0968487071 dvdemux: remove unused variable
Remove unused variable 'framecount' from dvdemux

https://bugzilla.gnome.org/show_bug.cgi?id=753008
2015-07-30 14:36:15 +01:00
Edward Hervey
523edaf6bd qt: Don't dist files that might not exist
We only require moc building at build time.
2015-07-22 15:14:28 +02:00
Edward Hervey
2df392541e qt: Tidy up makefile a bit more
Separate generated files, from disted files
2015-07-22 08:06:19 +02:00
Julien Isorce
47f3f98366 gstglwidget: use gst_gl_display_create_context
Also handle the failure case.

https://bugzilla.gnome.org/show_bug.cgi?id=750310
2015-07-21 15:06:34 +01:00
Thibault Saunier
b1d22b0515 gtk: Log GDK GL error when failling creating GdkGLContext 2015-07-20 11:09:20 +02:00
Matthew Waters
e56df237ee glcontext: fix get_current_gl_api on x11/nvidia drivers
They require to get_proc_address some functions through the
platform specific {glX,egl}GetProcAddress rather than the default
GL library symbol lookup.
2015-07-18 18:18:22 +10:00
Matthew Waters
ca97f5121a glcontext: fix get_current_gl_api on x11/nvidia drivers
They require to get_proc_address some functions through the
platform specific {glX,egl}GetProcAddress rather than the default
GL library symbol lookup.
2015-07-18 18:18:22 +10:00
Nicolas Dufresne
ef6bfe0eb4 gtkgstglwidget: Cleanup unused private member
new_buffer has been moved to base class. Also cleanup
the properties comment, which are also all moved into
the base class.
2015-07-17 16:00:01 -04:00
Nicolas Dufresne
6fdedfc68a gtksink: "widget" must be access from main thread
Document that "widget" property must be accessed from the
main thread (where GTK is running). This is the same for
state transition on these elements. It is very natural to
do so un GTK applications.
2015-07-17 15:57:37 -04:00
Nicolas Dufresne
067051f6fe gtkglsink: Don't leak vertex array and buffers
This is now possible since reset is always called from the
main thread.

https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:41:09 -04:00
Nicolas Dufresne
b2619df0ae gtkgstbasewidget: Fix black frame on resize
This is solved by only applying the new format when the next
buffer is to be rendered and on the GTK thread.

https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:41:07 -04:00
Nicolas Dufresne
d099499275 gtkgstbasewidget: Pass already parsed VideoInfo
As the base sink already parse the caps into VideoInfo it
makes sense to pass in VideoInfo to the widget instead.

https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:40:22 -04:00
Nicolas Dufresne
5584005f96 gtkglsink: Port to GstGtkBaseSink base class
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:14:09 -04:00
Nicolas Dufresne
0a4c1d8b52 gtksink: Port to GstGtkBaseSink
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:14:09 -04:00
Nicolas Dufresne
2d7d6a8596 gtkbasesink: Create a base class
This contains all the common code between the gtkglsink and
gtksink.

https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:13:12 -04:00
Nicolas Dufresne
4c201f3aa6 gtkglsink: Port to GtkGstBaseWidget
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-17 15:13:11 -04:00
Nicolas Dufresne
3ad1088ef3 gtksink: Port to GtkGstBaseWidget
https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-16 17:12:30 -04:00
Nicolas Dufresne
688e5dd7c4 gtk: Add GtkGstBaseWidget
This is a "pseudo" base class. Basically it's a shared instance
and class structure and a shared set of function between the
two widget. It cannot have it's own type like normal base class
since the one instance will implement GtkGLArea while the other
implements GtkDrawingAreay. To workaround this, the parent instance
and class is a union of both.

https://bugzilla.gnome.org/show_bug.cgi?id=752441
2015-07-16 17:12:30 -04:00
Nicolas Dufresne
5243f5678d gtkgstglwidget: Remove unused gl_caps 2015-07-16 17:05:36 -04:00
Nicolas Dufresne
d43e3e693c gtksink: Create a window if the widget is unparented
The same way as it's now done with the gtkglsink, create a top
level window if the widget is not parented.

https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-16 17:05:36 -04:00
Nicolas Dufresne
999bdd72c9 gtksink: Ensure the copy pasted code remains the same
Move back the default property at the same place they are in the
other sink. This helps when using a diff viewer to synchronized
this unfortunate copy paste.

https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-16 17:05:36 -04:00
Nicolas Dufresne
1a7c9b82f4 gtk: Fix race between queue_draw and destroy
In GTK dispose can be called before the last ref is reached. This
happens when you close the container window. The dispose will be
explicitly called, and destroyed notify will be fired. This patch
fixes this race by properly tracking the widget state.

In the sink, we now set the widget pointer to NULL, so the widget
will properly get created again if you set your pipeline to NULL
state after the widget was destroy, and set it back to PLAYING.

https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-16 17:05:36 -04:00
Wim Taymans
0421d40d9c pulse: add properties to GstDevice
Add the extra properties we get from pulse to the GstDevice we expose
with the device monitor
2015-07-15 18:29:21 +02:00
Nicolas Dufresne
8d9fbc5e49 gtkgstwidget: Add missing break in get_property 2015-07-15 11:47:51 -04:00
Nicolas Dufresne
5db1a0027a gtksinks: Remove undefined private structure
The classes contains a private structure which are not defined,
hence unused.
2015-07-15 11:44:30 -04:00
Edward Hervey
d1ad64fca7 configure/qt: Fix build without Qt5X11Extras 2015-07-10 14:01:59 +02:00
Matthew Waters
b1bbdceeb2 new qt5 qml GL video sink
Very much in the same spirit as the Gtk GL sink

Two things are provided
1. A QQuickItem subclass that renders out RGBA filled GstGLMemory
   buffers that is instantiated from qml.
2. A sink element that will push buffers into (1)

To use
1. Declare the GstGLVideoItem in qml with an appropriate
   objectName property set.
2. Get the aforementioned GstGLVideoItem from qml using something like

QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

QObject *rootObject = engine.rootObjects().first();
QQuickItem *videoItem = rootObject->findChild<QQuickItem *> ("videoItem");

3. Set the videoItem on the sink

https://bugzilla.gnome.org/show_bug.cgi?id=752185
2015-07-10 15:25:26 +10:00
Matthew Waters
469ea20754 gtk: add to the generic/states test 2015-07-09 16:40:19 +10:00
Xavier Claessens
c3f1f2d78b GstGtkGLSink: Ensure widget has a toplevel parent
Checking for a parent is not enough, it must have a toplevel one.
If widget has no toplevel parent then add it in a GtkWindow, that
make it usable from gst-launch-1.0.

https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-09 16:40:19 +10:00
Xavier Claessens
9f39a9964a GstGtkGLSink: Post error if widget gets destroyed
https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-09 16:40:19 +10:00
Xavier Claessens
c55e55f48b GstGtkGLSink: fix possible warning in finalize
If the element is finalized before going in READY state
the widget could still be NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=751104
2015-07-09 16:40:19 +10:00
Thibault Saunier
cb10f1b290 gtkglsink: Release the widget lock when trying to get the GL context
Otherwise we might be waiting for the lock on the main loop (for
example in the ->render vmethod) and thus we will deadlock.
2015-07-06 19:33:35 +02:00
Vineeth TM
3f6a868f7e flacdec: improve error handling
for files which have corrupted header, libflac is not able to
process the metadata properly. We just try to ignore the error
and continue with the processing, since metadata parsing is not
making much of a difference to libflac

https://bugzilla.gnome.org/show_bug.cgi?id=751334
2015-07-06 14:57:11 +01:00
Tim-Philipp Müller
8b759eb460 mikmod: remove ancient unported plugin
This hasn't been touched in 11 years, and
clearly no one's been missing it.
2015-06-25 10:06:07 +01:00
Vineeth T M
5828713771 mikmod_reader: Possible null pointer dereference:
gst_reader variable is being used before actually checking if it
allocated properly

https://bugzilla.gnome.org/show_bug.cgi?id=751306
2015-06-22 12:17:54 +01:00
Sebastian Dröge
577ca6a0e8 gtkglwidget: Const'ify another array 2015-06-15 21:32:43 +02:00
Sebastian Dröge
e410c770f5 gtkglwidget: Calculate the viewport size ourselves
Getting the current viewport and modifying it relatively will produce an
interesting feedback loop during widget resizing. Over a few frames we
will gradually move the viewport a bit until it converged again, adding
unnecessary additional borders at the top and left.
2015-06-15 21:29:46 +02:00
Sebastian Dröge
5cabeb3415 gtk: Use the display width/height for the widget's preferred width/height 2015-06-15 21:24:01 +02:00
Sebastian Dröge
166e33d64c gtksink: Add support for xRGB/BGRx 2015-06-15 20:45:11 +02:00
Sebastian Dröge
bd9ec0f333 gtk: Cairo color formats are in native endianness, GStreamer's in memory order
CAIRO_FORMAT_ARGB32 is ARGB on big endian and BGRA on little endian.
2015-06-15 20:39:59 +02:00
Sebastian Dröge
05fa796c25 gtk: Implement ignore-alpha property and enable it by default 2015-06-15 20:35:38 +02:00
Sebastian Dröge
8497b84e0d gtk: Sync properties from the sink to the widget upon widget creation 2015-06-15 20:13:57 +02:00
Matthew Waters
48db03200d gtk: implement pixel and display aspect ratio handling 2015-06-15 22:39:07 +10:00
Matthew Waters
8648d59974 gtk: silence unused variable warnings for unsupported winsys' 2015-06-15 14:41:24 +10:00
Matthew Waters
869ea6093c gtk: implement basic wayland GL support 2015-06-15 14:41:05 +10:00
Thibault Saunier
baad74b995 gtk: Do not try to activate a NULL GLContext
At that point in the code nothing guarantees it exists
2015-06-12 15:40:29 +02:00
Arun Raghavan
8e236fa2e1 pulsesrc: Fix mapping of latency parameters to buffer attributes 2015-06-12 12:49:28 +05:30
Matthew Waters
a512a91598 gtk: implement video aspect-ratio handling
For both the software and the GL sink's.

Doesn't deal with the pixel-aspect-ratio field at all yet.
2015-06-12 15:17:30 +10:00
Matthew Waters
b9ebc71cc8 gtk: fix a couple of typos 2015-06-12 12:40:50 +10:00
Matthew Waters
7707894ee5 gtkglsink: reset the context/display in READY_TO_NULL
Fixes context propagation in pipelines with upstream GL elements.
2015-06-12 12:32:06 +10:00
Nicolas Dufresne
5c6050f849 gstgtk: Allow doing gst-inspect-1.0 on these elements
This patch allow going gst-inspect-1.0 on these elements removing
ugly crash that was previously occurring. The method consist of
making the widget creation as lazy as possible. This way we don't
endup doing gtk_init() before the application. We also ref_sink()
the widget, so we don't crash if the parent widget is discarded,
and cleanly error out with GL if the widget has no parent window,
because calling gtk_widget_realized() can only be done if the widget
has been parented to a window).
2015-06-11 12:41:49 -04:00
Thibault Saunier
4cef5787c8 gtk: Do not try to initialize display if we have not have a GLContext yet 2015-06-11 15:07:24 +02:00
Matthew Waters
a959c410d9 Implement gtk sinks
two sinks are provided.  gtksink which is a cairo/software based renderer
and gtkglsink which utilises the GL support in gtk and gstreamer.
2015-06-11 22:01:03 +10:00
Xavier Claessens
64e4df3fe2 souphttpsrc: Add tls-database property
https://bugzilla.gnome.org/show_bug.cgi?id=750298
2015-06-10 14:10:39 -04:00
Xavier Claessens
5ada1a6cf8 souphttpsrc: fix getter of "ssl-use-system-ca-file"
https://bugzilla.gnome.org/show_bug.cgi?id=750298
2015-06-10 12:02:16 +01:00
Sebastian Dröge
a0b69c8dac vp[89]enc: Properly convert between GStreamer and encoder timebase
... by switching numerator and denominator when scaling.

https://bugzilla.gnome.org/show_bug.cgi?id=749122
2015-05-12 12:13:16 +03:00
Sebastian Dröge
eb365cc3bb vp[89]enc: Don't set timebase from the framerate
The framerate very often is just an indication of the ideal framerate, not the
actual framerate of the stream. By just using the framerate, we confuse the
rate control algorithm algorithm as multiple frames will map to the same PTS
or have durations of 0.

https://bugzilla.gnome.org/show_bug.cgi?id=749122
2015-05-12 11:54:40 +03:00
Tim-Philipp Müller
f7661aae4b docs: update example pipelines in element docs
Mostly gst-launch -> gst-launch-1.0, but also
use autoaudiosink/autovideosink in more places
and update pipelines a little or flesh out
descriptions.
2015-05-10 11:34:33 +01:00
Tim-Philipp Müller
b33f30c658 docs: update example pipelines in element docs
Mostly gst-launch -> gst-launch-1.0, but also
use autoaudiosink/autovideosink in more places
and update pipelines a little or flesh out
descriptions.
2015-05-10 11:34:33 +01:00
Tim-Philipp Müller
2e412a447a docs: update example pipelines in element docs
Mostly gst-launch -> gst-launch-1.0
Use autovideosink/autoaudiosink more often.
Sprinkle some converters here and there.
2015-05-10 11:05:00 +01:00
Guillaume Desmottes
1421fc558e jpegdec: fix frame leaks in handle_frame() implementation
handle_frame() is supposed to consume @frame, so if we don't call
gst_video_decoder_drop_frame() or gst_video_decoder_finish_frame() we have to
release it manually.

https://bugzilla.gnome.org/show_bug.cgi?id=748909
2015-05-05 13:56:05 -04:00
Ravi Kiran K N
ebbefbb792 dvdemux: extract recording time
Extracts the recorded time of the dv file from
the metadata and puts it into the global tags.

https://bugzilla.gnome.org/show_bug.cgi?id=743657
2015-04-28 19:36:03 +01:00
Thiago Santos
5c7c90ff2c vp8dec: optimize vpx image to gstbuffer copy when strides match
Solving this FIXME. Copy the full plane when strides are the same
2015-04-17 14:27:27 -03:00
Thiago Santos
3270137702 vp9dec: optimize vpx image to gstbuffer copy when strides match
Solving this FIXME. Copy the full plane when strides are the same
2015-04-17 13:06:41 -03:00
Olivier Crête
12867fcb3d vp8enc: Expose VP8 width/height limitations in the caps template
The VP8 format specification (RFC 6386 section 18.1) specifies
that the maximum size is 16383x16383.
2015-04-01 19:31:18 -04:00
Luis de Bethencourt
3763f4057a vp9enc: remove duplicate declaration of function 2015-03-09 16:25:43 +00:00
Sebastian Dröge
a52e432fda vp[89]enc: Reset the encoder when flushing
https://bugzilla.gnome.org/show_bug.cgi?id=745704
2015-03-09 16:47:57 +01:00
Arun Raghavan
3751c87f00 pulsesink: Make sure to filter caps in all cases during CAPS query
We were skipping the filter step while returning template caps, for
example.
2015-03-09 11:55:40 +05:30
Sebastian Dröge
8965619f13 souphttpclientsink: Implement cookies property 2015-03-08 18:04:34 +01:00
Sebastian Dröge
b2bcb3d61f souphttpclientsink: Implement automatic-redirect property 2015-03-08 18:02:51 +01:00
Sebastian Dröge
814f741a28 souphttpclientsink: Implement proxy support
The properties were there before, but not used anywhere.
2015-03-08 17:54:42 +01:00
Sebastian Dröge
627e492b7e vp[89]dec: Drop frames that have no output buffer because of errors
finish_frame() assumes that there is an output buffer.
2015-03-05 10:01:09 +01:00
Sebastian Dröge
379621fd0b vp8enc: Use 0 as duration for the EOS "frame" 2015-03-02 15:06:09 +01:00
Sebastian Dröge
51ebca3c03 vp{8,9}enc: Tell the encoder about actual timestamps and durations of frames
... instead of just counting frames. The values are supposed to be in timebase
units, not frame units. This fixes various quality problems with VP8/VP9
encoding and in general makes the encoder behave better.

Thanks to Nirbheek Chauhan for noticing this bug.
2015-03-02 15:03:49 +01:00
Nicolas Dufresne
501a53b26d vpxdec: Fix calculation of width in bytes
Right now we only support I420, but vpx seems to support more formats.
This will prevent hard to find bug in the future.
2015-03-01 14:03:05 -05:00
Nicolas Dufresne
1521f65e8d vpxdec: Don't memcpy in frame map failed
This avoid a crash if mapping the frame failed.
2015-03-01 14:03:04 -05:00
Luis de Bethencourt
8e5a16e662 jack: case missing break statement
commit b1098c2ea5 added a new case in
gst_jack_audio_src_get_property() but forgot to add the break statement to it.
2015-02-19 11:20:55 +00:00
hark
b1098c2ea5 jack: Add property port-pattern to specify which JACK ports to connect to
https://bugzilla.gnome.org/show_bug.cgi?id=690719
2015-02-17 13:45:43 +02:00
Jimmy Ohn
f9a8f0ebfe pulsesink: Enhance code readability in pulsesink_query
In pulsesink_query function, we use a switch for the query
type. In the CAPS case, there is no 'break', instead we
return right away. Use a break and return at the end of
the function instead for better code readability.

https://bugzilla.gnome.org/show_bug.cgi?id=744461
2015-02-13 22:27:49 +00:00
Sebastian Dröge
f4b5107796 Improve and fix LATENCY query handling
This now follows the design docs everywhere, especially the maximum latency
handling.

https://bugzilla.gnome.org/show_bug.cgi?id=744106
2015-02-11 13:53:02 +01:00
Jimmy Ohn
bf10d33b9b pulsesink: Free format_info in query_getcaps
If we can not create probe stream in query_getcaps function, it will appear
memory leakage from format info.
The following patch prevent memory leakage in pulsesink.

https://bugzilla.gnome.org/show_bug.cgi?id=743178
2015-01-26 12:07:20 -03:00
Sebastian Dröge
db8ee7e7e0 Constify some static arrays everywhere 2015-01-21 09:56:41 +01:00
Sebastian Dröge
0c13b4fa6e Constify some static arrays everywhere 2015-01-21 09:56:41 +01:00
Sebastian Dröge
d5aab81a77 Constify some static arrays everywhere 2015-01-21 09:55:53 +01:00
Mark Nauwelaerts
0dd46accf6 pulsesink: uncork if needed upon commit
... to provide for a running clock.
2015-01-10 13:04:44 +01:00
Sebastian Dröge
bbcfc3b9e6 souphttpsrc: Don't return a buffer when returning not GST_FLOW_OK
basesrc assumes that we don't return a buffer if
something else than OK is returned. It will just
leak any buffer we might accidentially provide
here.

This can potentially happen during flushing.

Maybe fixes https://bugzilla.gnome.org/show_bug.cgi?id=741993
2014-12-30 16:28:09 +01:00
Tim-Philipp Müller
b76595d67e gdkpixbufoverlay: add "positioning-mode" property to allow absolute positions
Set positioning-mode=pixels-absolute to allow positioning with
absolute coordinates, meaning negative x/y offsets will be
interpreted as being to the left/above the video frame instead
of being interpreted as relative to the right/bottom edge of
the video frame (which is a silly default, but that's how it is).

This means we can nicely slide images into and out of the frame,
see gdkpixbufoverlay-test.

https://bugzilla.gnome.org/show_bug.cgi?id=739566
2014-12-25 15:38:37 +00:00
Thibault Saunier
7874bba773 vpXenc: CLOCK_TIME_NONE is not a valid min_latency value
We should just use 0 if we do not have the information
2014-12-09 20:38:22 +01:00
Tim-Philipp Müller
8c2d55d1e9 gdkpixbufoverlay: add "pixbuf" property
So we can set a GdkPixbuf directly instead of
reading it from an image file on the file system.
2014-11-30 14:35:06 +00:00
Tim-Philipp Müller
35f10e4630 gdkpixbuf: remove pixbufscale code that was never ported
Don't think we'll need this again.
2014-11-30 14:34:08 +00:00
Tim-Philipp Müller
023a1637d9 apev2mux: write APE tags at end for wavpack files
http://www.wavpack.com/file_format.txt:
"Both the APEv2 tags and/or ID3v1 tags must come at the end of the
WavPack file, with the ID3v1 coming last if both are present."

WavPack files that contain APEv2 tags at the beginning of the files
are unplayable on players that use FFmpeg (like VLC) and most other
software (except Banshee). Players that use libwavpack directly can
play the files because it skips the tags, but does not recognize the
tag data at that location.

https://bugzilla.gnome.org/show_bug.cgi?id=711437
2014-11-28 13:12:46 +00:00
Tim-Philipp Müller
c53747bdf5 speex: remove support for ancient speex versions 2014-11-22 21:28:35 +00:00
Branislav Katreniak
1e03ffb820 souphttpsrc: log connection events at info level
https://bugzilla.gnome.org/show_bug.cgi?id=739305
2014-11-22 15:14:58 +00:00
Vincent Penquerc'h
0b36fe59e1 flacdec: set the channel positions using the appropriate API
This avoids _set_format setting the unpositioned flag when passed
NULL as channel positions, as it would not be cleared when setting
actual channel positions later.
2014-11-12 14:10:40 +00:00
Aurélien Zanelli
d0e8a385e0 vpx: mark arnr-type properties as deprecated and set them to no-op
ARNR type control in libvpx has been deprecated so this commit mark the
vp8enc and vp9enc associated properties as deprecated and change their
behavior to just display a warning message.

https://bugzilla.gnome.org/show_bug.cgi?id=739476
2014-11-10 16:14:17 +01:00
Vineeth T M
63e0b29291 pngdec: change parse logic
Right now in parse logic the signature is checked every time the parse function
is called, and the whole data is the scanned each and every time, even though the
data is scanned in the previous instance. Changing the logic such that, we skip
the bytes which are already scanned in the previous instances of parse. This
helps in avoiding multiple scan of already scanned data/signature.

https://bugzilla.gnome.org/show_bug.cgi?id=737708
2014-11-04 10:55:32 +00:00
Tim-Philipp Müller
3956f5addc Sprinkle some G_PARAM_DEPRECATED and #ifndef GST_REMOVE_DEPRECATED 2014-11-02 16:58:30 +00:00
Aurélien Zanelli
130873c8fd vpx: remove compatibility defines
We are guaranteed to have VPX_IMG_FMT_I420, VPX_PLANE_Y,
VPX_PLANE_U and VPX_PLANE_V as we require libvpx > 1.1.0.

https://bugzilla.gnome.org/show_bug.cgi?id=739476
2014-11-01 15:40:44 +00:00
Tim-Philipp Müller
29e7b20610 wavpack: remove support for ancient API version 2014-11-01 15:40:44 +00:00
Vincent Penquerc'h
ca9528d0b0 speexenc: update output segment stop time to match clipped samples
This will let oggmux generate a granpos on the last page that properly
represents the clipped samples at the end of the stream.
2014-10-30 14:43:22 +00:00
Vincent Penquerc'h
b18d8b085a flacenc: update output segment stop time to match clipped samples
This will let oggmux generate a granpos on the last page that properly
represents the clipped samples at the end of the stream.
2014-10-30 14:30:30 +00:00
Tim-Philipp Müller
31b8cfecc2 pulse, v4l2: add missing G_END_DECLS in some places 2014-10-28 21:32:06 +00:00
Tim-Philipp Müller
666b596aa2 pulse: remove some unused typedefs 2014-10-23 15:46:29 +01:00
Ananda
ec3af50cc2 speex: Fix segfault when resetting the codecs multiple times
https://bugzilla.gnome.org/show_bug.cgi?id=738793
2014-10-23 10:30:26 +02:00
Arun Raghavan
163155715f pulsesink: Temporarily disable stream status posting
We need a mechanism in PulseAudio to allow running code outside the
mainloop lock. Then we'd be able to post to the bus (taking the
GST_OBJECT_LOCK), without worrying about locking order with the mainloop
lock, which is the current cause of deadlocks while trying to post the
stream status messages.

https://bugzilla.gnome.org/show_bug.cgi?id=736071
2014-10-22 23:12:38 +05:30
Nirbheek Chauhan
f35f3ccf7c souphttpclientsink: Fix lifetime of stream headers and queued buffers
Stream headers are updated whenever ::set_caps is called, so we can't assume
they'll be valid before the message body is written out. We *can* assume that
for queued buffers, but SOUP_MEMORY_STATIC is still wrong for those.

Also, add some debug logging for stream header interactions.

https://bugzilla.gnome.org/show_bug.cgi?id=737771
2014-10-02 12:47:36 +03:00
Nirbheek Chauhan
374552a720 souphttpclientsink: Add some more useful debug logging 2014-10-02 09:48:49 +03:00
Nirbheek Chauhan
745d497318 souphttpclientsink: Free queued buffers in ::reset
::render sets a new callback for writing out new buffers only if there aren't
already buffers queued for writing with a previously-scheduled callback.
However, if the previously-scheduled callback is interrupted by a state change
(either manually or due to an error) and there are still buffers in the queue,
restarting the pipeline will result in buffers being queued forever, and no
callbacks will ever be scheduled, and no buffers will be written out.

https://bugzilla.gnome.org/show_bug.cgi?id=737739
2014-10-02 09:48:27 +03:00
Sebastian Dröge
23a3377b1e vp8enc/vp9enc: Protect the encoder with a mutex in all situations 2014-09-30 11:35:42 +03:00
Sebastian Dröge
df053c997c vp9enc: Allow caps renegotiation
https://bugzilla.gnome.org/show_bug.cgi?id=726329
2014-09-30 11:35:42 +03:00
Sebastian Dröge
ced5d657e3 vp8enc: finish() and drain() should return a GstFlowReturn 2014-09-30 11:35:42 +03:00
Jose Antonio Santos Cadenas
a2e2012ae3 vp8enc: Allow caps renegotiation
https://bugzilla.gnome.org/show_bug.cgi?id=726329
2014-09-30 11:35:35 +03:00
Arun Raghavan
2a3adec2f7 pulse: Add some documentation about threading and synchronisation
This gives a quick introduction to how the pulsesink/pulsesrc code
interacts with the pa_threaded_mainloop that we start up to communicate
with the server.
2014-09-30 06:28:50 +05:30
Arun Raghavan
0ed08ac3fd pulsesink: Make emitting stream status messages synchronous
The stream status messages are emitted in the PA mainloop thread, which
means the mainloop lock is taken, followed by the Gst object lock (by
gst_element_post_message()). In all other locations, the order of
locking is reversed (this is unavoidable in a bunch of cases where the
object lock is taken by GstBaseSink or GstAudioBaseSink, and then we get
control to take the mainloop lock).

The only way to guarantee that the defer callback for stream status
messages doesn't deadlock is to either stop posting those messages, or
make sure that the message emission is completed before we proceed to
any point that might take the object lock before the mainloop lock
(which is what we do after this patch).

https://bugzilla.gnome.org/show_bug.cgi?id=736071
2014-09-30 06:28:50 +05:30
Sanjay NM
26a1344f37 Miscellaneous minor cleanups
Fix redundant variables and assignments,
and unreachable breaks.

https://bugzilla.gnome.org/show_bug.cgi?id=736875
https://bugzilla.gnome.org/show_bug.cgi?id=736876
https://bugzilla.gnome.org/show_bug.cgi?id=736879
https://bugzilla.gnome.org/show_bug.cgi?id=736880
https://bugzilla.gnome.org/show_bug.cgi?id=736881
https://bugzilla.gnome.org/show_bug.cgi?id=736888
https://bugzilla.gnome.org/show_bug.cgi?id=736890
https://bugzilla.gnome.org/show_bug.cgi?id=736892
https://bugzilla.gnome.org/show_bug.cgi?id=736893
https://bugzilla.gnome.org/show_bug.cgi?id=736894
2014-09-24 00:45:31 +01:00
Vineeth T M
89b9313e20 gdkpixbufdec: modify wrong packetized mode logic
packetized mode is being set when framerate is being set
which is not correct. Changing the same by checking the
input segement format. If input segment is in TIME it is
Packetized, and if it is in BYTES it is not.

https://bugzilla.gnome.org/show_bug.cgi?id=736252
2014-09-16 14:50:59 +03:00
Sebastian Dröge
90ccd8212a jpegdec: Remove unused variable and use correct decoder variable name 2014-09-16 11:26:22 +03:00
Sebastian Dröge
f489beb7c5 pngdec: Remove unused variable 2014-09-16 11:25:42 +03:00