Commit graph

6593 commits

Author SHA1 Message Date
Edward Hervey
93b19d06b6 aiff: Re-add noinst_HEADERS instruction
Was removed in the previous android cleanup commit
2015-04-29 10:56:24 +02:00
Tim-Philipp Müller
f0a9c246a3 gst: remove some unnecessary glib version checks
We require 2.32, no need to check for anything older
than that.
2015-04-28 16:02:27 +01:00
Guillaume Desmottes
da113b5ad7 mxf: fix descriptor leak
Free the existing descriptor array, if any, before replacing it.

Fix leaks with the
validate.file.playback.scrub_forward_seeking.test-mpeg2-mp3_mxf scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=748580
2015-04-28 11:53:52 -03:00
Guillaume Desmottes
94446498de tsdemux: fix taglist leak
If the stream which is about to be removed still has a ref on a tag list we
should drop it.

Fix a leak which was occasionally happening with the
validate.file.playback.change_state_intensive.tron_en_ge_aac_h264_ts scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=748576
2015-04-28 14:58:03 +01:00
Jimmy Ohn
365375a1de mpegtspacketizer: fix find_subtable() return value
find_subtable() returns a pointer, so return NULL and
not FALSE when nothing is found.

https://bugzilla.gnome.org/show_bug.cgi?id=748527
2015-04-28 14:48:22 +01:00
Thiago Santos
2690cd33ce wrappercamerabinsrc: remove unused code
The structure is created and never used anymore. Remove it.
2015-04-27 21:14:09 -03:00
Thiago Santos
5e0e02553d wrappercamerabinsrc: use digitalzoom element
Replace videocrop ! videoscale ! capsfilter with the digitalzoom
bin that has the same pipeline internally and already updates
the capsfilter automatically when caps change, removing this code
from wrappercamerabinsrc and making it cleaner.
2015-04-27 21:14:09 -03:00
Thiago Santos
ca96378ebf digitalzoom: change videocrop parameters before passing caps event
Avoids one extra uneeded renegotiation if the elements are already
configured to their final property values when the caps event
goes through.

Also avoids hitting bug https://bugzilla.gnome.org/show_bug.cgi?id=748344
2015-04-27 21:14:02 -03:00
Thiago Santos
239cb53e06 digitalzoom: also skip internal pipeline in upstream caps query
To avoid going through our capsfilter which would limit the choices.
2015-04-27 21:13:55 -03:00
Thiago Santos
539db6f68b digitalzoom: prevent assertion when caps is any 2015-04-27 21:13:55 -03:00
Thiago Santos
3a70cf5667 camerabin: digitalzoom: create a bin element for digital zooming
It contains videocrop ! videoscale ! capsfilter and implements digital
zooming.

At this moment, it is a private element of the camerabin plugin.

This will remove some code used in wrappercamerabinsrc to make
code clearer and digitalzoom can potentially be used by other
applications in the future, it has nothing camerabin specific.
2015-04-27 21:13:47 -03:00
Luis de Bethencourt
d45a1253b1 mpegdemux: remove unused property enum item
The property enum item has been there since the origin of the element but it
has never been used. Removing it.
2015-04-27 14:56:13 +01:00
Luis de Bethencourt
925b65b02e Rename property enums from ARG_ to PROP_
Property enum items should be named PROP_ for consistency and readability.
2015-04-27 10:55:18 +01:00
Tim-Philipp Müller
699452ef31 Remove obsolete Android build cruft
This is not needed any longer.
2015-04-26 18:59:32 +01:00
Stefan Sauer
707b0ffcd6 audiovisualizer: fix the license from GPL to LGPL
This was a copy'n'paste buf in the initial commit done by myself.
2015-04-25 18:50:52 +02:00
Stefan Sauer
da29bdc71a audiovisualizer: fix the license from GPL to LGPL
This was a copy'n'paste buf in the initial commit done by myself.
2015-04-25 18:46:41 +02:00
Thiago Santos
c6f4e4cfd8 wrappercamerabinsrc: Rework cropping for zoom and dimension reduction
wrappercamerabinsrc has a videocrop element to be used for
zooming and for cropping when input caps is different when used
with the GstPhotography interface. The zooming part needs
the following elements:

capsfilter ! videocrop ! videoscale ! capsfilter

The capsfilters should always have the same caps to ensure the
zooming is done and preserves dimensions, unless when it is needed
to do more cropping due to input dimensions those caps
need to be modified accordingly to preserve the output dimensions.

This, however, makes it hard to get caps negotiation to work properly
as we need to have different caps in the capsfilters to account for
the extra cropping needed. It could be simple for fixed caps but it
gets tricky with unfixed ones.

To solve this, this patch splits the zooming and dimension reduction
cropping into 2 separate videocrop elements. The first one does
the dimension cropping, which is only needed when the GstPhotography
API is used and the source provides a caps that is different than
what is requested, while the second is dedicated to zoom crop only.

The first part of the pipeline goes from:

src ! videoconvert ! capsfilter ! videocrop ! videoscale ! capsfilter

to

src ! videocrop ! videoconvert ! capsfilter ! videocrop ! videoscale ! capsfilter

It might add an extra overhead in the image capture as the image might need
to be cropped twice but this can be solved by enabling videocrop to use
crop metas so only the later one does the real cropping.

It also makes the code a bit simpler.
2015-04-24 15:12:47 -03:00
Thiago Santos
524e536a91 wrappercamerabinsrc: remove obsolete comment
This is already handled in another place and doesn't make sense
in the function context anymore
2015-04-24 15:12:47 -03:00
Thiago Santos
7b834cb0b3 wrappercamerabinsrc: error out if source fails to prepare for capture
Post an error when preparing the image capture through photography
interface fails
2015-04-24 15:12:46 -03:00
Thiago Santos
0c04f2f0ff wrappercamerabinsrc: intersect instead of compare for equality
Intersect is enough to check if the requested caps are compatible
with what the source is going to provide. Equality will be too strict.
2015-04-24 15:12:46 -03:00
Thiago Santos
af1dda2ecd wrappercamerabinsrc: fix typo 2015-04-24 15:12:46 -03:00
Luis de Bethencourt
c944093d08 remove unused enum items PROP_LAST
This were probably added to the enums due to cargo cult programming and are
unused.
2015-04-24 16:48:26 +01:00
Luis de Bethencourt
e5d62b073b gaudi: don't run gaussian function if sigma is 0 2015-04-23 11:47:37 +01:00
Luis de Bethencourt
8305f14ded gaudi: fix to 30780db1
The second check for (factor == 0) creeped in the last commit.
Apologies.
2015-04-22 15:04:05 +01:00
Luis de Bethencourt
30780db15b gaudi: fix exclusion's factor range
Avoid dividing by zero when the factor is zero. Instead, output a buffer with
all color values as zero.
2015-04-22 14:55:33 +01:00
Luis de Bethencourt
1fee98f5dd gaudi: remove floor variable in solarize
Floor variable has no effect and it isn't worth it to have it adjustable.
2015-04-22 14:15:17 +01:00
Luis de Bethencourt
2fbbdb5529 gaudi: remove unused property 2015-04-22 14:06:53 +01:00
Thiago Santos
70193761b8 wrappercamerabinsrc: Reset zoom element caps to go to viewfinder mode
Avoids not-negotiated failures related to using image capture caps
still when adjusting to go back to viewfinder.
2015-04-21 10:00:44 -03:00
Thiago Santos
ef5b7ca93e wrappercamerabinsrc: fix leak of drain query
gst_pad_peer_query doesn't take ownership of the query object
2015-04-21 10:00:44 -03:00
Thiago Santos
b74770bd05 wrappercamerabinsrc: Refactor internal pipeline
Remove tee and output-selector and just link the source
pad to the outputs we want as needed.

The way we need to prioritize caps negotiation and allocation
queries depending on the mode enabled is too custom to be
handled using tee and output-selector.
This provides more flexibility and doesn't get in the way of proper
handling of negotiation and allocation queries.
2015-04-21 10:00:44 -03:00
Edward Hervey
8ba1fbbe64 h264parse: Remove dead code
The detection for missing format/alignment is done way before this
codepath is reached (at which point we have already decided of a
format and alignment).

CID #1232800
2015-04-20 14:35:19 +02:00
Luis de Bethencourt
fa4822a41b tsdemux: clean assignment typo
No need to set the value twice.

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

CID #295122
2015-04-20 11:30:28 +01:00
Luis de Bethencourt
f52cf2a7c4 tsdemux: remove dead code
position of GstSegment is an unsigned int64, it can never be below zero.

CID #1295123
2015-04-20 10:58:33 +01:00
Vineeth T M
3daa793494 fieldanalysis: exception when block width to 0
When block width property is set to 0, exception occurs.
This happens due to divide by zero errors in calculations.
block width property can never be 0. Hence adjusting the minimum value to 1.

https://bugzilla.gnome.org/show_bug.cgi?id=744188
2015-04-20 09:42:14 +01:00
Olivier Crête
b4219a3e63 mpegtsbase: Remove unused latency query code
The behavior changes based on the type of segment,
not on the liveness of the source.
2015-04-17 13:59:08 -06:00
Olivier Crête
a1f709c293 tsdemux: Cleanup latency query handling
The minimum latency is always 0 or more. And we should
requery upstream as it may have changed.
2015-04-17 13:59:08 -06:00
Edward Hervey
ed27244c03 mpegtspacketizer: Unify debug statements
Use 0x%04x for PIDs
2015-04-17 16:21:28 +02:00
Edward Hervey
b80ae9cdcd tsdemux: Unify duration querying code
And properly use it in the SEEKING query.

Fixes seeking with gst-play
2015-04-17 16:21:28 +02:00
Vincent Penquerc'h
d84d803431 mpegdemux: fix pad leak when not adding a new pad after no-more-pads 2015-04-16 13:35:40 +01:00
Vincent Penquerc'h
cb0eaeadfd tsdemux: fix segment position tracking for the general case
Different streams can have different PTS/DTS bases, and some
streams may not even have DTS.

https://bugzilla.gnome.org/show_bug.cgi?id=745102
2015-04-16 13:35:40 +01:00
Sebastian Dröge
9b50a12b52 h264parse: Don't unref buffer that was unreffed just a few lines before already 2015-04-15 21:07:59 +02:00
Olivier Crête
c4c9fe60b6 pcapparse: Take buffer directly from the adapter
No need to make a copy into a new buffer, just take the data
from the adapter.
2015-04-10 20:27:15 -04:00
Olivier Crête
a2b093af47 pcapparse: Produce GstBufferList 2015-04-10 20:27:15 -04:00
Thiago Santos
5a1c73a105 wrappercamerabinsrc: remove unused attribute and related pad probe
The variable was never set to true and can be removed along
with the probe in which it used to act
2015-04-10 16:23:25 -03:00
Vincent Penquerc'h
338bfe5e35 tsdemux: handle seeks with no target (ie, keep current position)
Such seeks are used to change playback rate and we do not want
to alter the position in that case, so we bypass the flush/seek
logic, and set things up so a new segment is scheduled to be
regenerated.

https://bugzilla.gnome.org/show_bug.cgi?id=735100
2015-04-09 15:44:20 +01:00
Vincent Penquerc'h
68f57d20b9 tsparse: fix timestamps not updating after a PMT change
The PCRs stay locked onto the same PID as before the change,
but the relevant PID has no reason to be the same after it.

https://bugzilla.gnome.org/show_bug.cgi?id=745102
2015-04-09 15:44:20 +01:00
Vincent Penquerc'h
ade79a9ad2 tsdemux: send new segment when a stream is added
This will happen when the PMT changes, replacing streams with
new ones. In that case, we need to accumulate the running time
from the previous chain in the segment base.

https://bugzilla.gnome.org/show_bug.cgi?id=745102
2015-04-09 15:44:20 +01:00
Vincent Penquerc'h
fc2460b331 tsdemux: keep track of current position
This allows seeking to correctly set the base on the segment.

https://bugzilla.gnome.org/show_bug.cgi?id=745102
2015-04-09 15:44:20 +01:00
Guillaume Desmottes
4d790dae67 mxfdemux: fix memory leak
Reset the internal segment before freeing it.

mxf_index_table_segment_parse() allocates data inside the segment
(like segment->delta_entries) which have to be freed using
mxf_index_table_segment_reset().

https://bugzilla.gnome.org/show_bug.cgi?id=746803
2015-04-04 19:47:40 +01:00
Olivier Crête
34a921c31b audiomixer: Allow downstream caps with a non-default channel-mask
Instead of failing, take the downstream channel mask if the channel
count is 1.
2015-04-01 20:32:41 -04:00