Commit graph

6782 commits

Author SHA1 Message Date
Reynaldo H. Verdejo Pinochet
801c27689e pnmdec: drop frame in case of _handle() failure
Allows baseclass to handle it from there

Related to:

https://bugzilla.gnome.org/show_bug.cgi?id=756563
2015-10-18 14:53:01 -07:00
Reynaldo H. Verdejo Pinochet
ec5648763d pnmdec: propagate input state after parsing
Store and copy input state fields when setting the
output state of the decoder. Avoids problems like
the framerate set by an upstream element being ignored

Related to:

https://bugzilla.gnome.org/show_bug.cgi?id=756563
2015-10-18 14:53:01 -07:00
Reynaldo H. Verdejo Pinochet
4b5e2f68a3 pnmdec: completely reset parsing state at flush
Makes sure the mngr struct reflects a clean state
for the next frame, avoiding failures like:

https://bugzilla.gnome.org/show_bug.cgi?id=756563
2015-10-18 14:53:01 -07:00
Tim-Philipp Müller
b204d3b95e liveadder: latency property is an uint64 in audiomixer 2015-10-12 09:42:37 +01:00
Olivier Crête
305e5c7ac3 liveadder: Remove plugin, replace by compat subclass of audiomixer
New subclass with a similar behaviour as the old liveadder, but
a slightly different API as the latency is in nanoseconds, not
milliseconds. Also, the new liveadder has a effective latency that
is latency + output-buffer-duration. In practice, just setting a non-zero
latency with the new audiomixer gives you the right behavior in 99% of the
cases.
2015-10-11 11:04:38 +01:00
Vineeth TM
3b89dd4768 audioaggregator: Fix build error
Build error due to wrong argument type in debug message
aagg->priv->offset and next_offset are of type int64, but uint64
formatter is being used in logs. Changing all those to int64

https://bugzilla.gnome.org/show_bug.cgi?id=756065
2015-10-07 11:20:35 +01:00
Vineeth TM
43ce0c3142 id3tag: fix sample memory leak
When getting sample from taglist, the memory is not being freed resulting in memory leak.

https://bugzilla.gnome.org/show_bug.cgi?id=756070
2015-10-05 12:07:06 +01:00
Sebastian Dröge
f5dd41d710 Update GLib dependency to 2.40.0 2015-10-02 22:24:19 +03:00
Vineeth TM
8c9ca808af gstreamer: bad: 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=753854
2015-10-02 17:24:35 +03:00
Sebastian Dröge
30d3db5bab audiovisualizers: Fix nodist_HEADERS 2015-10-02 11:31:50 +03:00
Sebastian Dröge
40a908b1d9 audioaggregator: Select the initial offset based on the start segment position
instead of always using 0. Otherwise we might output a lot of silence in the
beginning instead of outputting from the relevant position.

https://bugzilla.gnome.org/show_bug.cgi?id=755623
2015-10-01 17:40:59 +02:00
Luis de Bethencourt
9e97267ca0 audiovisualizers: merge audiovisualizer base classes
These plugins now use the audiovisualizer base class in pbutils

https://bugzilla.gnome.org/show_bug.cgi?id=742875
2015-10-01 16:07:25 +01:00
Tim-Philipp Müller
5bf7432f81 mpegtsmux: fix downstream key unit events handling with hlssink
The buffer timestamps in the collect function will already be
running time, don't try to convert them again to running time,
this would yield CLOCK_TIME_NONE now that the segment is shifted
to account for negative dts.

This fixes x264enc ! mpegtsmux ! hlssink, which was broken
because mpegtsmux would send a downstream key unit event with
running time NONE and then hlssink would immediately send
another one upstream and it would just be a flood of force
keyframe events in both directions after the first one. This
would then break hlssink because it uses multifilesink in
next-file=key-unit-event mode, and starting a new file after
every few kB does not work well for HLS.
2015-09-30 00:43:26 +01:00
Luis de Bethencourt
c8d4e85f9e vc1parse: add break to switch case
Even though all cases inside VC1_STREAM_FORMAT_ASF are goto or
g_assert_not_reached(), add a break at the end to appease Coverity.

CID #1320706
2015-09-29 13:34:15 +01:00
Stefan Sauer
a198e55b31 Revert "midi: add an ALSA MIDI sequencer source"
This reverts commit cd7f4e5247.
2015-09-28 15:31:08 +02:00
Antonio Ospite
cd7f4e5247 midi: add an ALSA MIDI sequencer source
The alsamidisrc element allows to get input event from ALSA MIDI
sequencer devices, and possibly convert them to sound using some
downstream element like fluiddec.

https://bugzilla.gnome.org/show_bug.cgi?id=738687
2015-09-28 13:21:24 +02:00
Jan Schmidt
7d27dc7e23 Revert "dvdspu: render to AYUV overlay"
This reverts commit 5016a73190.
2015-09-27 00:26:07 +10:00
Jan Schmidt
23771469ea Revert "dvdspu: render to ARGB overlay instead of AYUV"
This reverts commit dd3e9deb2a.
2015-09-27 00:26:07 +10:00
Jan Schmidt
a31978643c Revert "dvdspu: handle frame size event from upstream"
This reverts commit 46aaaa6c30.
2015-09-27 00:24:17 +10:00
Jan Schmidt
de568c4896 Revert "dvdspu: cache overlay composition"
This reverts commit aabb8a1a68.
2015-09-27 00:24:17 +10:00
Jan Schmidt
259a7bbf6c Revert "dvdspu: improve negotiation of overlay composition"
This reverts commit 1899e2a099.
2015-09-27 00:24:15 +10:00
Arnaud Vrac
7a7f358e6d dvdspu: fix pgs palette colors
U and V were inverted

https://bugzilla.gnome.org/show_bug.cgi?id=755239
2015-09-26 23:29:55 +10:00
Arnaud Vrac
1899e2a099 dvdspu: improve negotiation of overlay composition
Support negotiating GstVideoOverlayComposition downstream
while not providing it upstream.

https://bugzilla.gnome.org/show_bug.cgi?id=663750
2015-09-26 23:29:15 +10:00
Arnaud Vrac
aabb8a1a68 dvdspu: cache overlay composition
This avoids rendering the overlay buffer for each video frame.

https://bugzilla.gnome.org/show_bug.cgi?id=663750
2015-09-26 23:22:44 +10:00
Arnaud Vrac
46aaaa6c30 dvdspu: handle frame size event from upstream
An IDX file or codec_data normally contains the original frame size of
the video. Allow upstream to provide this information by sending a
custom event, which will allow scaling the overlay correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=663750
2015-09-26 23:18:38 +10:00
Arnaud Vrac
a41e7c5bec dvdspu: allow suffix in dvd event name to allow multiple sticky dvd events
https://bugzilla.gnome.org/show_bug.cgi?id=663750
2015-09-26 23:18:32 +10:00
Arnaud Vrac
dd3e9deb2a dvdspu: render to ARGB overlay instead of AYUV
https://bugzilla.gnome.org/show_bug.cgi?id=663750
2015-09-26 23:17:58 +10:00
Arnaud Vrac
5016a73190 dvdspu: render to AYUV overlay
Instead of only supporting writing SPU data directly to YUV frames,
render the SPU data to an intermediate AYUV overlay buffer. The overlay
data is then attached to the video frame if downstream supports overlay
composition, otherwise the AYUV overlay is blended to the video frame.

For the PGS format, the overlay buffer size is set to the size of the
Composition Window, and its position in the overlay composition is set
to the window position. The objects to render are now cropped when the
cropping flag is set.

For the Vobsub format, the overlay buffer size is set to the size of the
Display Area.

Once rendered, the overlay composition rectangle is now moved and scaled
to fit the video output size, to avoid clipping.

https://bugzilla.gnome.org/show_bug.cgi?id=663750
2015-09-26 23:17:03 +10:00
Arnaud Vrac
35e6d79d40 dvdspu: pass dvdspu argument to set_caps functions
https://bugzilla.gnome.org/show_bug.cgi?id=663750
2015-09-26 23:16:51 +10:00
Arnaud Vrac
344fe03f09 dvdspu: skip unneeded reading of RLE data
The RLE data was being read for dumping the SPU image even when the
DUMP_FULL_IMAGE macro was not set.

https://bugzilla.gnome.org/show_bug.cgi?id=663750
2015-09-26 23:16:37 +10:00
Tim-Philipp Müller
fccee018f3 audiomixer: fix deadlock when G_DISABLE_ASSERT is not defined
This makes the audiomixer unit test time out in master.
Broke with 587e7c4
2015-09-26 10:21:41 +01:00
Sebastian Dröge
bed2c6820f audioaggregator: Stop using deprecated gst_segment_to_position() 2015-09-26 00:17:55 +02:00
Sebastian Dröge
3c44d3eca4 audioaggregator: Only skip the remaining part of a GAP buffer
We might've queued up a GAP buffer that is only partially inside the current
output buffer (i.e. we received it too late!). In that case we should only
skip the part of the GAP buffer that is inside the current output buffer, not
also the remaining part. Otherwise we forward this pad too far into the future
and break synchronization.
2015-09-18 18:00:05 +02:00
Tim-Philipp Müller
fade5a6d8a dvdspu: pgs: fix printf format/argument mismatch in debug statements
Fixes compiler warnings when extra debugging is enabled at compile time.
2015-09-17 19:57:16 +01:00
Jan Schmidt
e990e75e1e pcapparse: Hook up the recently added change_state vfunc.
The state change function was implemented, but not installed,
making the compiler complain about the unused function.
2015-09-18 00:29:51 +10:00
Jan Schmidt
587e7c4a23 Don't throw compiler warnings with G_DISABLE_ASSERT
Disable code that warns about unused variables when G_DISABLE_ASSERT
is defined, as it is in tarballs and pre-releases.
2015-09-18 00:29:51 +10:00
Tim-Philipp Müller
0cb160a685 intervideosink: render preroll frames as well
Derive from GstVideoSink so that preroll frames will automatically
get rendered too, unless the show-preroll-frame property is set to
FALSE. Fixes intervideosrc only picking up frames if intervideosink
is in PLAYING state.

https://bugzilla.gnome.org/show_bug.cgi?id=755049
2015-09-16 17:20:52 +01:00
Jan Schmidt
86a8ff50c0 dvbsuboverlay: Check if downstream supports GstVideoOverlayComposition.
Fix the negotiation of GstVideoOverlayComposition by checking
intersection with the peer caps, rather than just accept-caps,
which might only check the pad template.

https://bugzilla.gnome.org/show_bug.cgi?id=755113
2015-09-17 00:49:58 +10:00
Sebastian Dröge
637106e287 audioaggregator: Fix mixup of running times and segment positions
We have to queue buffers based on their running time, not based on
the segment position.

Also return running time from GstAggregator::get_next_time() instead of
a segment position, as required by the API.

Also only update the segment position after we pushed a buffer, otherwise
we're going to push down a segment event with the next position already.

https://bugzilla.gnome.org/show_bug.cgi?id=753196
2015-09-14 19:57:00 +02:00
Sebastian Dröge
97fe89f351 audioaggregator: Use stream time in the position query instead of segment position
https://bugzilla.gnome.org/show_bug.cgi?id=753196
2015-09-14 19:56:51 +02:00
Nirbheek Chauhan
cf786a9399 compositor: Ensure all arguments to CLAMP are signed int
If any of the arguments to CLAMP are unsigned integers, the comparison causes
an automatic conversion of the signed int to unsigned, which causes -1 to become
UINT_MAX and get clamped to the high value of the CLAMP instead of 0.

See 716 at http://c0x.coding-guidelines.com/6.3.1.8.html

Also add a test for this.

https://bugzilla.gnome.org/show_bug.cgi?id=754576
2015-09-04 23:32:36 +02:00
Olivier Crête
cf1d116b19 pcapparse: Reset state on flush and state changes
https://bugzilla.gnome.org/show_bug.cgi?id=753152
2015-08-31 14:42:27 -04:00
Nirbheek Chauhan
db49716c70 compositor: variables in clamp_rectangle() should be signed
x/y/w/h are signed integers. As can be seen in GstCompositorPad.
The prototype for clamp_rectangle was wrong. This commit reverts the change
and fixes the prototype.

This reverts commit bca444ea4a.
2015-08-29 17:27:45 +01:00
Tim-Philipp Müller
536e3742aa Fix file permissions of some files 2015-08-28 19:55:59 +01:00
Luis de Bethencourt
bca444ea4a compositor: remove check for below zero for unsigned value
CLAMP checks both if value is '< 0' and '> max'. Value will never be a negative
number since it is an unsigned integer. Removing that check and only checking if
it is bigger than max by using MIN().

CID 1320707
2015-08-28 15:21:13 +01:00
Sebastian Dröge
50fc332ab5 dvbsuboverlay: Fix caps memory leak by making static caps actually static
See https://bugzilla.gnome.org/show_bug.cgi?id=754157
2015-08-27 11:10:53 +03:00
Nicolas Dufresne
b392a6e3b9 h264parse/h265parse: Fix negotiation crash
As it's recursive, gst_pad_get_allowed_caps() may also return
empty for anything incompatible downstream. EMPTY is not valid caps
value for gst_caps_fixate(). This lead to assertion and then crash.
Ideally, the negotiate function should be re-factored to have a return
value, and we could make the negotiation fails earlier.

https://bugzilla.gnome.org/show_bug.cgi?id=754122
2015-08-26 10:56:07 -04:00
Nirbheek Chauhan
9b59bb8630 compositor: Actually use the output resolution for clamping
The obscured check in compositor was using the dimensions of the pad to clamp
the h/w of the pad instead of the output resolution, and was doing an incorrect
calculation to do so. Fix that by simplifying the whole calculation by using
corner coordinates. Also add a test for this bug which fell through the cracks,
and just skip all the obscured tests if the pad's alpha is 0.0.

https://bugzilla.gnome.org/show_bug.cgi?id=754107
2015-08-26 15:03:05 +03:00
Tim-Philipp Müller
54fc1ed5f4 tsdemux: fix latency handling again
The tsdemux latency should always be added to the minimum
latency (which is always a valid clock time value). The
"cleanup" in commit a1f709c2 made it so that it would not
be added if upstream reported 0 as minimum latency (as
e.g. udpsrc would). This broke playback of live mpeg-ts
streaming in some cases, leading to playback stutter due
to a too-small configured latency for the pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=751508
2015-08-24 10:46:31 +01:00
Guillaume Marquebielle
30d58f4688 liveadder: fix assertion when copying buffer region
In gst_live_adder_chain() function, calls to gst_buffer_copy_region() can lead
to assertion as 'offset + size <= bufsize' is not respected.
Indeed 'offset' and 'size' parameters are calculated through calling gst_live_adder_length_from_duration(),
and thus gst_util_uint64_scale_int_round().
Depending on the nearest integers, rounded values 'offset' and 'size' can then trigger the assertion.
This case mainly occurs when 'skip' value is > 0 in chain function process.

https://bugzilla.gnome.org/show_bug.cgi?id=753759
2015-08-18 16:37:09 -04:00