Commit graph

6502 commits

Author SHA1 Message Date
Song Bing
cdb06c6c99 dvbsuboverlay: Set query ALLOCATION need_pool to FALSE
Set query ALLOCATION need_pool to FALSE as it only need query if can
support video overlay composition meta.

https://bugzilla.gnome.org/show_bug.cgi?id=745495
2015-03-04 11:05:45 +01:00
Sebastian Dröge
d387cf67df audiomixer: Latency is twice the output buffer duration, not only once
Let's assume a source that outputs outputs 20ms buffers, and audiomixer having
a 20ms output buffer duration. However timestamps don't align perfectly, the
source buffers are offsetted by 5ms.

For our ASCII art picture, each letter is 5ms, each pipe is the start of a
20ms buffer. So what happens is the following:

0   20  40  60
OOOOOOOOOOOOOOOO
|   |   |   |

  5   25  45  65
  IIIIIIIIIIIIIIII
  |   |   |   |

This means that the second output buffer (20 to 40ms) only gets its last 5ms
at time 45ms (the timestamp of the next buffer is the time when the buffer
arrives). But if we only have a latency of 20ms, we would wait until 40ms
to generate the output buffer and miss the last 5ms of the input buffer.
2015-03-03 20:06:48 +01:00
Luis de Bethencourt
e3418a963a asfmux: remove unnecessary conditional
The two branches of the if conditional are identical, which means in all cases
the same gst_asf_put_guid() will be executed. Do it directly.

CID #1226448
2015-03-03 16:23:43 +00:00
Arun Raghavan
5f8f18df9b liveadder: Use default upstream latency querying logic
We can rely on the standard upstream latency querying logic and then add
our own latency.
2015-02-27 01:05:51 +05:30
Luis de Bethencourt
b383ae0fbd jpegparse: interlaced doesn't mean progressive scan
Removing interlaced variable since it is meant to mean progressive scan
and that isn't used.
2015-02-24 18:50:28 +00:00
Vineeth T M
1fa839033b simplevideomarkdetect: move offset calculations out of inner loops
the calculations for detecting the videomark is being repeated
in for loop unnecessarily. Moving this outside of for loop
such that the code need not be executed evertime the loop is executed.

https://bugzilla.gnome.org/show_bug.cgi?id=744778
2015-02-19 10:15:54 -03:00
Sebastian Dröge
e02d6983c9 liveadder: Fail the latency query if one of the upstream queries fails 2015-02-19 01:28:20 +02:00
Luis de Bethencourt
9909d1f770 mxfdemux: remove unneeded values
No need to store the GstFlowReturn when we can check if it is not OK directly
2015-02-18 19:27:46 +00:00
Luis de Bethencourt
4d43472c2b mxfdemux: renaming GstFlowReturn variable
Having a variable named ret in a static void function is very confusing since
this usually is to store what the function will return.
2015-02-18 19:26:43 +00:00
Luis de Bethencourt
b7e0c7a163 mxfdemux: remove ignored value
Value stored in ret will be ovewritten in the next iteration of the loop. Which
means it is never used.

Plus a style issue to make gst-indent happy and allow the commit.
2015-02-18 18:00:54 +00:00
Tim-Philipp Müller
e9141b718b audiovisualizer: don't use private GMutex implementation details
Don't use private GMutex implementation details to check
whether it has been freed already or not. Just turn dispose
function into finalize function which will only be called
once, that way we can just clear the mutex unconditionally.
2015-02-17 09:56:55 +00:00
Vineeth T M
413a60959d simplevideomark: refactor code
the calculations for drawing the videomark is being repeated
in for loop unnecessarily. Moving this outside of for loop
such that the code need not be executed evertime the loop is executed.

https://bugzilla.gnome.org/show_bug.cgi?id=744371
2015-02-13 18:33:48 -03:00
Thiago Santos
b347ea9870 tsdemux: Fix segment and segment event handling during seeking
Always update the segment and not only for accurate seeking and always
send a new segment event after seeks.

For non-accurate force a reset of our segment info to start from
where our seek led us as we don't need to be accurate

https://bugzilla.gnome.org/show_bug.cgi?id=743363
2015-02-13 15:29:24 -03:00
Tim-Philipp Müller
84a9493a81 audiomixer: use new gst_aggregator_pad_drop_buffer() 2015-02-13 16:25:52 +00:00
Tim-Philipp Müller
5230b2354f audiomixer: calculate stream_time used to sync pad values correctly
Use pad (input) segment to calculate the stream time from the
input timestamp, not the aggregator (output) segment.
2015-02-12 11:41:10 +00:00
Sebastian Dröge
037928dcf6 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 14:16:21 +01:00
Rob Clark
b4df029030 dvdspu: some optimizations
Detect invisible pixels, and skip gstspu_vobsub_blend_comp_buffers()
when there are only invisible pixels.  This significantly reduces the
CPU load in cases of DVDs which don't use the clip_rect to exclude
processing for parts of the screen where the video is visible.

https://bugzilla.gnome.org/show_bug.cgi?id=667221
2015-02-08 06:17:01 +11:00
Jan Schmidt
cb7c99b8ee dvdspu: Avoid warning if the video for a still frame arrives after the SPU
When we don't have a segment on the video pad yet during a still frame
don't freak out.
2015-02-08 06:16:49 +11:00
Luis de Bethencourt
1f670cb9ba Revert "aiffparse: make sure we have data before handling sink event"
This reverts commit a4baabb48d.
2015-02-06 16:22:26 +00:00
Luis de Bethencourt
a4baabb48d aiffparse: make sure we have data before handling sink event
Check AIFF_PARSE_DATA is True before handling sink event, if not goto exit.
2015-02-06 15:13:43 +00:00
Tim-Philipp Müller
dc2c4840f9 audiomixer: remove now-unused base_time field in object structure 2015-02-06 10:47:20 +00:00
Sebastian Dröge
ce7444411e audiomixer: Remove weird and wrong segment handling
There's no reason why audiomixer should override the segment
base of upstream with whatever value it got from a SEEK event,
or even worse... with 0 if there was no SEEK event yet. This
broke synchronization if upstream provided a segment base other
than 0, e.g. when using pad offsets.
Also that this code did things conditional on the element's state
should've been a big warning already that something is just wrong.
If this breaks anything else now, let's fix it properly :)

Also don't do fancy segment position trickery when receiving a
segment event. It's just not correct.
2015-02-05 16:02:54 +01:00
Thiago Santos
e9c1d64895 mpegtsmux: avoid leaking force keyunit event when going to NULL
Do not set to NULL before unreffing the event or it will leak
2015-02-03 17:05:06 -03:00
Anton Gritsay
77bafb4dbc mpegtsmux: parse force key unit events with the correct function
Otherwise it won't be parsed and bogus values would be used.

https://bugzilla.gnome.org/show_bug.cgi?id=696032
2015-02-03 17:05:00 -03:00
Thiago Santos
b18a09dbec tsdemux: remove update segment logic
This is not needed in 1.x series anymore
2015-02-03 13:50:42 -03:00
Aurélien Zanelli
d0a50be26d tsdemux: don't mark streams as needing a new segment on flush
The flush is called on discont and we shouldn't output a new segment
each time a discont happens. So this commit remove the mark for a new
segment when flushing streams by propagating the 'hard' flag passed
on the flusing from the base class.

https://bugzilla.gnome.org/show_bug.cgi?id=743363
2015-02-03 13:50:42 -03:00
Luis de Bethencourt
26692836f2 audiovisualizer: remove double-setting of render function
No need to set the audiovisualizer->render function twice. Once is enough.
2015-01-29 11:55:13 +00:00
Thibault Saunier
1a07467d5f aggregator: Make the PAD_LOCK private
Instead of using the GST_OBJECT_LOCK we should have
a dedicated mutex for the pad as it is also associated
with the mutex on the EVENT_MUTEX on which we wait
in the _chain function of the pad.

The GstAggregatorPad.segment is still protected with the
GST_OBJECT_LOCK.

Remove the gst_aggregator_pad_peak_unlocked method as it does not make
sense anymore with a private lock.

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Thibault Saunier
d8eef43123 aggregator: Hide GstAggregatorPad buffer and EOS fileds
And add a getter for the EOS.

The user should always use the various getters to access
those fields

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Olivier Crête
a2f1aa30c8 audiomixer: Clear GstAudioInfo the the caps
When clearing the caps, also clear the matching GstAudioInfo

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Olivier Crête
067b44e0b8 audiomixer: Don't reset caps on flush
A flush event doesn't invalidate the previous caps event.

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Olivier Crête
cc3f418516 aggregator: Replace event lock with pad's object lock
Reduce the number of locks simplify code, what is protects
is exposed, but the lock was not.

Also means adding an _unlocked version of gst_aggregator_pad_steal_buffer().

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Luis de Bethencourt
2b99c2c579 aiffparse: remove unnecessary variable
The bps variable is declared with value aiff->bps, read once and never written.
aiff->bps can be used directly instead.
2015-01-26 13:46:44 +00:00
Luis de Bethencourt
d48e57538d aiffparse: fix which stop variable is used in assignment
Assignment is done to variable segment.stop when the intention was to assign to
local variable stop. Instead of overwriting it, the value is now clamped and
segment.stop is set to it soon after.

CID #1265772
2015-01-26 12:49:45 +00:00
Matthieu Bouron
6716671762 aiffmux: write padding byte at end of SSND chunk if needed
AIFF chunks are supposed to be even aligned.

Aligning the SSND chunk will allow the aiff muxer to properly write
chunks (like the ID3 one) at the end of the file.

https://bugzilla.gnome.org/show_bug.cgi?id=727402
2015-01-23 16:01:35 +01:00
Arun Raghavan
e53627c277 intervideosrc: Fix GAP flag setting on non-black frames
The previous commit fixed setting the GAP flag on black frames, but
incorrectly dropped the flag on repeated pushes of the same video
buffer.
2015-01-23 12:47:03 +05:30
Arun Raghavan
825239b450 intervideosrc: Fix GAP flag setting on black frames correctly
This did not actually work since the video_buffer was set to NULL after
the first black frame.

Reported by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>
2015-01-22 11:07:50 +05:30
Arun Raghavan
ec7f05dd9c intervideosrc: Fix max value of the timeout property
Reported by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>
2015-01-22 11:07:50 +05:30
Luis de Bethencourt
1b2d74728c audiovisualizer: sync with base class in -base
https://bugzilla.gnome.org/show_bug.cgi?id=742875
2015-01-21 15:31:21 +00:00
Luis de Bethencourt
6431de3286 audiovisualizer: ensure default query/event handlers are used
Sync audiovisualizer class implementation to the one in gst-plugins-base. This
commit matches 9dd0e6cccc in that module.

https://bugzilla.gnome.org/show_bug.cgi?id=742875
2015-01-21 15:06:21 +00:00
Sebastian Dröge
a657ba9f3b siren: Make some local variables non-static for thread-safety
Otherwise we will override values from another thread if we encode
or decode frames at the same time in different threads.
2015-01-21 10:18:50 +01:00
Sebastian Dröge
80e02cbdf9 Constify some static arrays everywhere 2015-01-21 10:18:50 +01:00
Edward Hervey
ca22a8e87f mpegdemux: minor debug update
Only show PTS/DTS when they are valid, and include the stream id
2015-01-21 08:47:48 +01:00
Víctor Manuel Jáquez Leal
654e2a0298 h264parse: expose stereo-high profile
Exposing stereo-high profile as a compatible profile of multiview-high
if the maximum number of encoded views in the stream is two.

https://bugzilla.gnome.org/show_bug.cgi?id=743174
2015-01-21 01:03:36 +11:00
Víctor Manuel Jáquez Leal
4fc3db1808 h264parse: parse SPS subset
This patch calls gst_h264_parser_parse_subset_sps() when a
SPS subset NAL type is found.

All the bits required for parsing the SPS subset in NALs were
already there, just we need to call them when the this NAL type
is found.

With this parsing, the number of views (minus 1) attribute is
filled, which was a requirement for negotiating the stereo-high
profile.

https://bugzilla.gnome.org/show_bug.cgi?id=743174
2015-01-21 01:03:36 +11:00
Sreerenj Balachandran
d8c2dd2da1 h264parse: add initial support for MVC NAL units.
Initial support for MVC NAL units. It is only needed to propagate the
complete set of NAL units downstream at this time.

https://bugzilla.gnome.org/show_bug.cgi?id=696135

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-01-21 00:18:44 +11:00
Vincent Penquerc'h
15d51c1f6c compositor: fix illegal memory access in blend function with negative ypos
https://bugzilla.gnome.org/show_bug.cgi?id=741115
2015-01-19 12:38:13 +00:00
Tim-Philipp Müller
b5bd2a8855 Remove real plugin which is no longer needed and has never been ported
Decoders for these formats exist in gst-libav, if anyone
still has a need for them.
2015-01-18 17:30:28 +00:00
Sebastian Dröge
efb74ca0df interaudiosink: Make sure that buffer time is always bigger than period time 2015-01-15 13:13:51 +01:00
Nirbheek Chauhan
29975746dc compositor: Document the zorder pad property from gstvideoaggregator 2015-01-14 19:21:36 +01:00