Commit graph

14485 commits

Author SHA1 Message Date
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
Olivier Crête
4665c0802a oggdemux: Set chain pointers to NULL
Otherwise, they will refer to freed memory

https://bugzilla.gnome.org/show_bug.cgi?id=753078
2015-08-06 17:40:40 +01:00
Vineeth TM
0a3fe31f26 decodebin: fix deadend_details string leak
deadend_details need not be returned when the pad is not a deadend.
Hence checking if res value is TRUE and clearing the string instead of
passing it on

https://bugzilla.gnome.org/show_bug.cgi?id=753088
2015-08-05 14:33:35 -03:00
Nicolas Dufresne
7db376d05e videotestsrc: Don't set DTS on buffer
DTS is for encoded data and have no meaning for raw. It better to not
set it, as it's confusing.

https://bugzilla.gnome.org/show_bug.cgi?id=752791
2015-08-04 18:00:35 -04:00
Olivier Crête
315857dce6 oggdemux: Return FLUSHING if pad if flushing
If the initial seek fails because the pad is
flushing, then return GST_FLOW_FLUSHING instead
of an error.
2015-07-30 18:43:19 -04:00
Brian Peters
1273848bf5 rtpbuffer: avoid accessing NULL buffer even more
Previous commit was incompletely applied.

https://bugzilla.gnome.org/show_bug.cgi?id=753001
2015-07-30 15:16:57 +01:00
Brian Peters
04c69952c0 rtp: buffer: don't access NULL buffer pointer
unmap will set rtpbuffer->buffer to NULL, so we need to
save the pointer to access it while the RTP buffer is
unmapped.

https://bugzilla.gnome.org/show_bug.cgi?id=753001
2015-07-30 14:30:44 +01:00
Tim-Philipp Müller
232bdf1711 rtpbasedepayload: fix leaks in error code paths
This was introduced when reshuffling the buffer unmaps
in commit bc14cdf529
rtp: rtpbasedepayload: add process_rtp_packet() vfunc

Fixes make check-valgrind.

https://bugzilla.gnome.org/show_bug.cgi?id=750235
2015-07-30 12:50:56 +01:00
Sebastian Dröge
5830db7050 textoverlay: Query downstream caps for checking if caps features are supported, not just accept-caps
accept-caps is not recursive and might stop at the next downstream element,
while caps queries are generally recursive. The next element might accept any
capsfeatures we want, but that doesn't mean that further downstream it will
also work.

Additionally for the future:
We should probably check if downstream *prefers* the
overlay meta, and only enforce usage of it if we can't handle
the format ourselves and thus would have to drop the overlays.
Otherwise we should prefer what downstream wants here.
2015-07-28 14:14:50 +03:00
Nicolas Dufresne
d4759f05f1 basetextoverlay: Use the extents rectangle for positioning
the extents rectangle is what you need to know to properly position
a buffer that has been rendered in a surface of the ink rectangle
size. This patch make the placement on par with the placement we had
before without having to over allocate.

This patch also enable placement for vertical rendering. Note that
the halginement, valighment and line-alignment default are set to
the previous default when this property is set. This is for backward
compatibility, you can change the value after setting vertical render.

https://bugzilla.gnome.org/show_bug.cgi?id=728636
2015-07-24 16:43:59 -04:00
Nicolas Dufresne
7569a2e932 basetextoverlay: Fix clipping issues
This patch uses the ink rectangle in order to compute the size
of the surface require to render. It also correctly compute the
transformation matrix as the ink_rect position might not be at
0, 0. Additionally, shadow_offset and outline_offset (which is
in fact the diameter of a dot, not a really an offset) is now
taken into account. Redundant matrix operation has been removed
for the vertical rendering.

Take note that the matrix operation in cairo are excuted in
reverse order.

https://bugzilla.gnome.org/show_bug.cgi?id=728636
2015-07-24 16:43:59 -04:00
Tim-Philipp Müller
2b0e71f4de tools: gst-play: seek at least in steps of a second
In case of very short files we might end up seeking in
steps of a fraction of a second, which is silly and gives
the impression that seeking doesn't actually work. Make
minimum seek step a second instead.
2015-07-24 10:15:21 +01:00
Nicolas Dufresne
f9e6d38bf9 basetextoverlay: Improve further the negotiation function
* Only send the caps event once if the query had support for the
  overlay composition meta.
* Only do the allocation query if it is supported through caps.
* Send overlay_caps before doing allocation query rather then normal
  caps

https://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-22 17:01:03 -04:00
Rico Tzschichholz
c549523e7b basetextoverlay: Add missing linking against -lm 2015-07-22 14:51:29 -04:00
Nicolas Dufresne
48f877ea91 basetextoverlay: Ensure meta coordinate are in stream scale
The GstVideoOverlayComposition meta coordinates should always be
in stream scale, regardless of the window size downstream. This
way the sink can always scale the composition if the window size
have changed after a buffer (with his meta) was rendered before.

https://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-22 13:24:04 -04:00
Nicolas Dufresne
db81a73dba basetextoverlay: Reorder and cleanup class attribute
Also add a minimum amount of comment so we can understand what
is doing what.

https://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-22 13:24:04 -04:00
Ville Skyttä
04e3fc3f33 typefind: Treat *.umx (Unreal Music Package) as audio/x-mod
https://bugzilla.gnome.org//show_bug.cgi?id=752436
2015-07-22 12:59:03 +01:00
Nicolas Dufresne
a2e4ccc38b basetextoverlay: Fix upstream composition handling
We need to update the render when upstream composition changes
or if it was removed.

http://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-20 16:26:39 -04:00
Nicolas Dufresne
d10959fd36 basetextoverlay: Clear reconfigure flags before negotation
This avoids negotiating twice. Current the _setcaps() patch does
not clear the initial reconfigure flags, which lead to systematic
double renegotiation.

http://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-20 16:26:33 -04:00
Nicolas Dufresne
2308014963 basetestoverlay: Always query window dimension
Remove the optimization to skip allocation query so we can
always have the latest window size information. Also, correctly
deal with the case where there is no window size information.

http://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-20 16:26:19 -04:00
Nicolas Dufresne
a64a343077 basetextoverlay: Send caps before doing allocation query
This is currently a limitation of BaseTransform base class. Which means
pretty much every filters out there.

http://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-20 15:11:06 -04:00
Lubosz Sarnecki
d1808a5dbf basetextoverlay: Log GstVideoOverlayComposition negotiation
https://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-20 15:09:22 -04:00
Lubosz Sarnecki
91a615fa89 basetextoverlay: Receive window size event and adjust rendering
* cache window size event and update handle ratio
* init width with 1, don't use 0
* don't update overlay when receiving same window size
* receive window size from allocation query

https://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-20 15:09:22 -04:00
Lubosz Sarnecki
f128666834 basetestoverlay: Pass down meta buffers from upstream that supports GstVideoOverlayComposition
This makes pipelines with multiple textoverlay elements possible.
The meta data is collected from the upstream textoverlay element,
merged into a new GstVideoOverlayComposition and passed down downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=751157
2015-07-20 15:09:22 -04:00
Nicolas Dufresne
7c638e06ff depayloader: Use input segment start
When there is no clock_base provided, the start position is
set to 0 instead of the original segment start value. This
would break synchronization if start was not 0.

https://bugzilla.gnome.org/show_bug.cgi?id=752228
2015-07-18 15:40:26 -04:00
Tim-Philipp Müller
39576545b7 typefindfunctions: add DASH MPD typefinder
Moved from dashdemux plugin in -bad.
2015-07-16 21:26:30 +01: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
Tim-Philipp Müller
6020b0cf2b Update mailing list address from sourceforge to freedesktop 2015-07-16 17:17:16 +01:00
Tim-Philipp Müller
e2d8eabb3d tools: gst-device-monitor: fix props leak
CID 1311942
2015-07-16 10:54:29 +01:00
Wim Taymans
eddf604e66 device-monitor: print device properties 2015-07-15 18:22:28 +02:00
Wim Taymans
14083178b8 video: improve logging
Add logging categories for most video objects.
Remove some useless debug lines in video-info and videotestsrc.
Add a performance debug line in the video scaler.
2015-07-15 12:47:42 +02: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
Olivier Crête
dec3fb3723 rtsp: Include generated enum types in gstrtsptransport.h
GST_TYPE_RTSP_LOWER_TRANS used to be defined in there, not
including the generated file makes older gst-p-good fail to build,
so it constitues an API break.
2015-07-14 17:18:12 -04:00
Wim Taymans
2b2766494b socketsrc: add caps property
Add caps property that allows the src to easily negotiate a format.
2015-07-14 16:01:10 +02: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
Thiago Santos
9c2e08c54d decodebin: only try to expose complete groups
When switching to a new chain it might be that this new chain
is not yet ready to be exposed so check it before exposing.

Can happen with mpegts that might delay adding pads or pushing data
until it has found the PMT/PAT/PCR and that may take a while depending
on the stream.

It happened frequently with HLS:
http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8
2015-07-14 00:11:59 -03:00
Thiago Santos
1d1bebd769 decodebin: fix typo
Hided -> hid
2015-07-14 00:11:59 -03:00
Tim-Philipp Müller
bc14cdf529 rtp: rtpbasedepayload: add process_rtp_packet() vfunc
Add process_rtp_packet() vfunc that works just like the
existing process() vfunc only that it takes the GstRTPBuffer
that the base class has already mapped (with MAP_READ),
which means that the subclass doesn't have to map it again,
which allows more performant processing of input buffers
for most RTP depayloaders.

https://bugzilla.gnome.org/show_bug.cgi?id=750235
2015-07-12 14:29:29 +01:00
Sebastian Dröge
f99a24f8b3 playsink: Require the streamvolume interface on the sink when using the sink's volume/mute properties
If the sink has properties named volume and mute, we have no idea about their
meaning. The streamvolume interface standardizes the meaning.

In the case of osxaudiosink for example, the current volume property has a
range of 0.0 to 1.0, but we need 0.0 to 10.0 or similar. Also osxaudiosink
has no mute property. As such, the volume element should be used here instead.

https://bugzilla.gnome.org/show_bug.cgi?id=752156
2015-07-10 11:55:23 +03:00
Nicolas Dufresne
8be88f0364 doc/build: Fix doc typos
This minor update should workaround a build system bug. While the
makefile has been updated to generate more enum type, there is nothing
that updates the header and would lead to the generated code to be
produced again. This minor doc fix should ensure no one get a build with
missing symbols.
2015-07-09 10:47:20 -04:00
Sebastian Dröge
ceab711589 Revert "win32 def: Remove video flags symbol that don't exist"
This reverts commit b20cc6a02a.

They are actually there in the autogenerated enum header/source file.
2015-07-09 17:20:55 +03:00
Nicolas Dufresne
b20cc6a02a win32 def: Remove video flags symbol that don't exist
There has been a some refactoring and these symbols don't exist anynmore.
So remove it from the win32 def. This should fix distcheck.
2015-07-09 10:15:11 -04:00
Tim-Philipp Müller
3d7a92b452 rtpbasedepayload: fix typo in comment 2015-07-07 19:56:52 +01:00
Tim-Philipp Müller
fbf2773b2e rtpbasepayload: fix possible segment event leak
Need to clear it when shutting down, not when starting up.
Fixes leak in rtp-payloading unit test.
2015-07-07 15:05:59 +01:00
Hyunjun Ko
9dc463346e video/audio meta: transform_func: return FALSE if not supported or failed
https://bugzilla.gnome.org/show_bug.cgi?id=751778
2015-07-07 16:41:23 +03:00
Vineeth T M
efdb0fc281 xvimagesink: refactor to use gst_pad_push_event
Right now navigation events are being sent via gst_pad_send_event
after getting the peer pad of the sinkpad.
But the same functionality can be done using gst_pad_push_event
without need of getting peer pad in xvimagesink.

https://bugzilla.gnome.org/show_bug.cgi?id=752059
2015-07-07 12:50:39 +01:00
Sebastian Dröge
a1f8fb32cb video: Add some more GTypes for enums 2015-07-07 14:32:56 +03:00
Tobias Mueller
190c7f1928 GstVideoScaler: Initialised scaling functions to get rid of compiler messages
E.g.

video-scaler.c: In function 'gst_video_scaler_horizontal':
video-scaler.c:1332:3: error: 'func' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   func (scale, src, dest, dest_offset, width, n_elems);
   ^

video-scaler.c: In function 'gst_video_scaler_vertical':
video-scaler.c:1373:3: error: 'func' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   func (scale, src_lines, dest, dest_offset, width, n_elems);
   ^

GCC's analyses seem to be correct, for the simple fact that if you pass
get_functions a known format, but no hscale or vscale, it'll return
True without having done anything.
Some callers check for the scale values to be not NULL, but then
hscale->resampler.max_taps could return 0.
A different approach to the one presented in this patch is to check
for those max_taps, too, before calling get_functions.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=752051
2015-07-07 13:06:34 +02:00
Vineeth T M
51019c16e1 ximagesink: Post navigation events as message on the bus
post unhandled events to bus, so that
application can utilise the same if needed

https://bugzilla.gnome.org/show_bug.cgi?id=752043
2015-07-07 11:58:45 +01:00