Commit graph

6809 commits

Author SHA1 Message Date
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
Thiago Santos
a6dc5e19a2 videoencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: openjpegenc, schroenc, webpenc, pnmenc
2015-08-17 14:39:44 -03:00
Thiago Santos
6517282af7 audioencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: faac, gsmenc, opusenc, sbcenc, voamrwbenc, adpcmenc, sirenenc
2015-08-17 10:07:54 -03:00
Olivier Crête
567b1e8c46 videoparsers: Use gst_base_parse_merge_tags()
Instead of squashing all upstream tags

https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16 17:28:29 +01:00
Edward Hervey
7ea4a66b9f mpegtsdemux: Fix illogical comparision
A variable can't be two values at once. We want to stop if it's not the
actual ts *AND* not the other ts

CID #1316475
2015-08-16 12:56:56 +02:00
Thiago Santos
56b822f9f6 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
2015-08-15 13:51:16 -03:00
Thiago Santos
a5ed877783 videodecoders: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an
accept-caps query

Elements: daaladec, libde265dec, openjpegdec, rsvgdec, schrodec,
          webpdec, pnmdec, vmncdec, openexrdec
2015-08-15 13:51:16 -03:00
Luis de Bethencourt
51dfa3b135 rtph265depay: make sure we call handle_nal for each NAL
Call handle_nal for each NAL in the STAP-A RTP packet. This makes sure
we correctly extract the SPS and PPS.

https://bugzilla.gnome.org/show_bug.cgi?id=730999
2015-08-15 16:22:22 +01:00
Luis de Bethencourt
4075b1112c rtph265pay: Copy metadata in the payloader, but only the relevant ones
The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the video tag.

https://bugzilla.gnome.org/show_bug.cgi?id=751774
2015-08-15 14:45:37 +01:00
Luis de Bethencourt
5b2ddfb90c rtph265pay: Use GST_WARNING_OBJECT() instead of GST_WARNING()
https://bugzilla.gnome.org/show_bug.cgi?id=753228
2015-08-15 11:41:43 +01:00
Luis de Bethencourt
585e042fca rtph265pay: fix potential crash when shutting down
A race condition in the state change function may cause buffers to be
unreffed while they are still used by the streaming thread in
gst_rtp_h265_pay_send_vps_sps_pps() resulting in a crash. Chain up to the
parent class first in the state change function to make sure streaming
has stopped and only then free those buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=741381
2015-08-15 11:34:31 +01:00
Jan Schmidt
fdac09d843 h264parse: Clear SPS info after processing.
The SPS struct might be filled out by a call to
gst_h264_parser_parse_subset_sps, which fills out
dynamically allocated data and requires a call
to gst_h264_sps_clear() to free it. Also make sure
to clear out any allocated SPS data when returning
an error.

https://bugzilla.gnome.org/show_bug.cgi?id=753306
2015-08-15 15:39:23 +10:00
Thiago Santos
8f855a8b78 pngparse: enable accept-intersect and accept-template flags on sinkpad
Do a quick check with the pad template caps as it is enough. Users
should have figured the appropriate full caps on a previous caps query

https://bugzilla.gnome.org/show_bug.cgi?id=753623
2015-08-14 13:42:59 -03:00
Thiago Santos
c4cd1ce4fd videoparsers: enable accept-template flag
Do a quick check with the pad template caps as it is enough. Users
should have figured the appropriate full caps on a previous caps query

https://bugzilla.gnome.org/show_bug.cgi?id=753623
2015-08-14 13:42:59 -03:00
Luis de Bethencourt
b3418759d9 rtph265pay: fix buffer leak when using SPS/PPS
Fixes a buffer leak that would occur if the pipeline was shutdown while a
SPS/PPS header was being created.

https://bugzilla.gnome.org/show_bug.cgi?id=741271
2015-08-14 15:08:10 +01:00
Luis de Bethencourt
fd665514ba rtph265depay: copy metadata in the depayloader, but only the relevant ones
The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the video tag.

https://bugzilla.gnome.org/show_bug.cgi?id=751774
2015-08-14 12:00:23 +01:00
Vineeth TM
6fb346717b spu-pgs: fix buffer and event leak
When playing mts files with embedded subtitles, the buffer is mapped,
but not unmapped at the end resulting in a memory leak.

Also unref event in handle_dvd_event as it takes ownership of the event.

https://bugzilla.gnome.org/show_bug.cgi?id=753539
2015-08-13 14:56:00 +01:00
Vineeth TM
0812437293 dvdspu: Fix event leaks
When playing mts files with embedded subtitles, there are few event leaks.
Events are supposed to be transfer full. So if not forwarding the event,
they need to be freed.

https://bugzilla.gnome.org/show_bug.cgi?id=753539
2015-08-13 14:38:03 +01:00
Luis de Bethencourt
397b5d06ec rtph265depay: checking if depay has sps/pps nals before insertion
Related to: https://bugzilla.gnome.org/show_bug.cgi?id=753430

https://bugzilla.gnome.org/show_bug.cgi?id=753228
2015-08-12 17:54:55 +01:00
Luis de Bethencourt
ef9b7ef60a rtph265depay: only update the srcpad caps if something else than the codec_data changed
h264parse and gstrtph264depay do the same, let's keep the behaviour
consistent. As we now include the codec_data inside the stream, this causes
less caps renegotiation.

https://bugzilla.gnome.org/show_bug.cgi?id=753228
2015-08-12 17:22:44 +01:00
Luis de Bethencourt
4edf2ac1c5 rtph265depay: PPS replaces old PPS if it has the same id
https://bugzilla.gnome.org/show_bug.cgi?id=753228
2015-08-12 16:51:18 +01:00
Luis de Bethencourt
021333a9fc rtph265depay: Insert SPS/PPS NALs into the stream
rtph264depay does the same and this fixes decoding of some streams with 32
SPS (or 256 PPS). It is allowed to have SPS ID 0 to 31 (or PPS ID 0 to 255),
but the field in the codec_data for the number of SPS or PPS is only 5
(or 8) bit. As such, 32 SPS (or 256 PPS) are interpreted as 0 everywhere.

This looks like a mistake in the part of the spect about the codec_data.
2015-08-12 16:34:43 +01:00
Luis de Bethencourt
fee3129d49 rtph265depay: implement process_rtp_packet() vfunc
For more optimised RTP packet handling: means we don't need to map the
input buffer again but can just re-use the mapping the base class has
already done.

Based on: https://bugzilla.gnome.org/show_bug.cgi?id=750235

https://bugzilla.gnome.org/show_bug.cgi?id=753228
2015-08-12 15:53:23 +01:00
Luis de Bethencourt
2d3dc2caa6 rtph265depay: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()
Switching to GST_BUFFER_TIMESTAMP() to be consistent with other rtp code.
2015-08-12 15:14:52 +01:00
Luis de Bethencourt
9379933607 rtph265depay: prevent trying to get 0 bytes from adapter
This causes an assertion and would lead to getting a NULL instead
of a buffer. Without proper checking this would easily lead to a
segfault.

Related to rpth264depay: https://bugzilla.gnome.org/show_bug.cgi?id=737199
2015-08-12 15:05:02 +01:00
Nicolas Dufresne
e531ea9ff0 frei0r: Fix setting string parameters
String parameters are expected to be passed as (f0r_param_string *),
which actually map to char**. In the filters this is evaluated as
(*(char**)param) which currently lead to crash when passing char*.

Remove the special case for string, all types, including char* as
passed as a reference.

https://phabricator.freedesktop.org/T83
2015-08-11 15:11:01 -04:00
Sreerenj Balachandran
a83dabd5e8 videoparsers: h265: Fix the frame start detection code
Check slice headers in between GST_H265_NAL_SLICE_TRAIL_N
and GST_H265_NAL_SLICE_RASL_R for frame start detection.

https://bugzilla.gnome.org/show_bug.cgi?id=753497
2015-08-11 11:34:36 +01:00
Sreerenj Balachandran
2775b202dc videoparsers: h265: Avoid skipping of EOS and EOB nals
EndOfSequence and EndOfBitstream nal units have size of 2 bytes.
Don't consider them as broken nals.

https://bugzilla.gnome.org/show_bug.cgi?id=753497
2015-08-11 11:34:36 +01:00
Tim-Philipp Müller
424426f486 asfmux: output TIME segment if we output a stream and won't seek back later
Check if downstream is seekable via a SEEKING query and output a
BYTE segment if we want to seek back to fix up the headers later,
but if we're streaming send a TIME segment instead (which goes
down better with e.g. asfmux ! rtpasfpay).

https://bugzilla.gnome.org/show_bug.cgi?id=719553
2015-08-08 16:19:09 +01:00
Sreerenj Balachandran
69becd734d h265parse: expose compatible profiles to downstream
Some video bitstreams report a too restrictive set of profiles. If a video
decoder was to strictly follow the indicated profile, it wouldn't support that
stream, whereas it could in theory and in practice. So we should relax the
profile restriction for allowing the decoder to get connected with parser.

https://bugzilla.gnome.org/show_bug.cgi?id=747613
2015-08-07 13:11:53 +02:00
Nicolas Dufresne
ef7a074fa0 rgb2bayer: Use mapped frame stride 2015-08-06 18:12:07 -04:00
Nicolas Dufresne
97a0d9d72d rgb2bayer: Protect against failing map 2015-08-06 18:11:53 -04:00
Nicolas Dufresne
6bd93bd7e5 bayer2rgb: Read stride from the video info 2015-08-06 18:04:58 -04:00
Nicolas Dufresne
7d6fd42726 bayer2rgb: Protect against failing map 2015-08-06 18:04:41 -04:00
Nicolas Dufresne
3757e507f3 pcapparse: Segment should start at base ts
Instead we would use cur_ts which matches the last TS store
in the buffer list.

https://bugzilla.gnome.org/show_bug.cgi?id=753037
2015-08-05 14:54:05 -04:00
Anders Jonsson
3fb2222470 camerabin2: Fix string typo
https://bugzilla.gnome.org/show_bug.cgi?id=753241
2015-08-05 09:15:07 -04:00
Jimmy Ohn
be714c7441 rawparse: fix duplicated format in handle_seek_pull
GstFormat variable are duplicated in handle_seek_pull function.
So we need to move this variable in condition statement.

https://bugzilla.gnome.org/show_bug.cgi?id=753243
2015-08-04 12:29:40 -03:00
Olivier Crête
10ef6403b6 audiointerleave: Avoid caps processing if not yet negotiated
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
3f2bc1e4b2 audioaggregator: On timeout, resync pads with not enough data
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
6efc106a67 aggregator: Queue "latency" buffers at each sink pad.
In the case where you have a source giving the GstAggregator smaller
buffers than it uses, when it reaches a timeout, it will consume the
first buffer, then try to read another buffer for the pad. If the
previous element is not fast enough, it may get the next buffer even
though it may be queued just before. To prevent that race, the easiest
solution is to move the queue inside the GstAggregatorPad itself. It
also means that there is no need for strange code cause by increasing
the min latency without increasing the max latency proportionally.

This also means queuing the synchronized events and possibly acting
on them on the src task.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Vineeth TM
09992f32dc h265parse: Avoid checking for Non Mandatory VPS NAL
VPS is not mandatory, and need not check for its presence before setting
the caps. Because of the check, in streams which don't have VPS,
sticky event mishandling happens.

https://bugzilla.gnome.org/show_bug.cgi?id=752807
2015-07-30 15:10:05 +01:00
Vineeth TM
8f7a84a9a1 sdpdemux: assertion error due to wrong condition check
In media to caps function, reserved_keys array is being used for variable i,
leading to GLib-CRITICAL **: g_ascii_strcasecmp: assertion 's1 != NULL' failed
changed it to variable j

https://bugzilla.gnome.org/show_bug.cgi?id=753009
2015-07-30 15:51:53 +03:00
Luis de Bethencourt
0e29906a6f rtp: remove dead assignment
Value set to ret will be overwritten at least once at the end of the while
loop, removing assignment.
2015-07-29 17:33:27 +01:00
Tim-Philipp Müller
d37fcff732 mpegtsmux: use GQueue instead of GList prepend/reverse 2015-07-29 17:30:15 +01:00
Luis de Bethencourt
d6b637532f sdpdemux: remove redundant assignment
Value of p is already set below just before being used. Removing this
first assignment that will be ignored.
2015-07-29 17:19:33 +01:00
Luis de Bethencourt
7ddaf8741b mpegtsbase: remove redundant check
No need to check if done is True since break will already terminate the for
loop.
2015-07-29 16:52:08 +01:00
Sebastian Dröge
a4a2638d86 sdpdemux: Don't assert in GstAdapter if no data was received before EOS 2015-07-29 14:35:50 +01:00
Sebastian Dröge
86a9b84c92 sdpdemux: Strip keys from the fmtp that we use internally in our caps
Skip keys from the fmtp, which we already use ourselves for the
caps. Some software is adding random things like clock-rate into
the fmtp, and we would otherwise here set a string-typed clock-rate
in the caps... and thus fail to create valid RTP caps

https://bugzilla.gnome.org/show_bug.cgi?id=753009
2015-07-29 14:35:50 +01:00
Jan Schmidt
c1b0d818bb h264parse: Add more NAL types for debugging output.
Register more NAL unit types so that they are dumped
by name in the debug output instead of being labelled
'Invalid'
2015-07-29 23:10:49 +10:00
Jan Schmidt
55373e21a8 mpegtsmux: Don't clear the PID on reset.
The PID on a pad shouldn't change on a state change, only
if the pad is freed and a new one created. Clearing the PID
prevented mpegtsmux from being reused, because all packets
would end up muxed in PID 0

https://bugzilla.gnome.org/show_bug.cgi?id=752999
2015-07-29 23:10:49 +10:00
Jan Schmidt
0d170d51c7 mpegtsmux: Accumulate streamheaders in reverse
Accumulate streamheader packets in reverse into the
GList for efficiency, and reverse the list once when
processing.

Improves muxing speed when there are a lot of
streamheaders.
2015-07-29 23:10:49 +10:00
Vineeth TM
9b43bed607 h263parse: fix caps memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=752991
2015-07-29 09:25:47 +01:00
Jan Schmidt
48a1f27923 h264parse: Don't discard first AU delimiter
Don't throw away AU delimiter(s) that precede the SPS/PPS. Should
fix MPEG-TS playback on iOS/Quicktime when muxing streams that
already have AU delimiters.

See https://bugzilla.gnome.org/show_bug.cgi?id=736213 for getting
h264parse to insert AU delimiters when they don't already
exist.
2015-07-24 02:46:21 +10:00
Olivier Crête
86fb628d09 audioaggregator: Register function name
Otherwise, it sometimes segfaults with debugging enabled
2015-07-22 19:30:19 -04:00
Olivier Crête
034feb5bb9 audioaggregator: Use 1.0 style buffer allocation 2015-07-22 19:30:12 -04:00
Nirbheek Chauhan
ad8cb458ba audioaggregator: Sync pad values before aggregating
We need to sync the pad values before taking the aggregator and pad locks
otherwise the element will just deadlock if there's any property changes
scheduled using GstController since that involves taking the aggregator and pad
locks.

Also add a test for this.

https://bugzilla.gnome.org/show_bug.cgi?id=749574
2015-07-22 19:50:38 +01:00
Luis de Bethencourt
3bf12a1b9f liveadder: remove unneeded variable
ret is declared just to initialize to TRUE and overwrite with the value of
vret. We can return the value of vret directly. vret is TRUE unless the
forward_event_func sets it to FALSE.
2015-07-22 16:14:16 +01:00
Olivier Crête
f8f9c72cc5 audioaggregator: Read output buffer duration with lock held 2015-07-21 21:55:25 -04:00
Luis de Bethencourt
ac54fa8c95 liveadder: return false if event couldn't be pushed
Make the gst pad's event function return false if the event couldn't be
pushed to the pad.
2015-07-21 14:11:01 +01:00
Tim-Philipp Müller
be22d8fb4a mpegtsmux: fix aac caps in pad template for raw aac
Raw aac doesn't need framed=true.

Fixes not-negotiated error with voaacenc ! mpegtsmux.
2015-07-20 12:38:28 +01:00
Tim-Philipp Müller
ec309dbd64 mpegtsmux: don't wait for data on sparse inputs like metadata or subtitle streams 2015-07-13 23:34:33 +01:00
Tim-Philipp Müller
c05a9424be mpegtsmux: add basic support for asynchronous KLV metadata streams
This is defined in SMPTE Rp 217. In this case the
metadata PES packets carry no timestamps of their
own and no Metadata Access Unit Wrappers are used.
2015-07-13 23:34:31 +01:00
Edward Hervey
631b2d8826 mpegtsbase: Fix previous commit
We only want to do a hard reset of the observations if we're working
with TIME segments in push mode. For BYTE segment we want to keep
the observations (in order to do seeks in push-mode).
2015-07-09 18:33:00 +02:00
Edward Hervey
0247dc7489 mpegtsbase: Flush more on DISCONT buffers in push mode
When in push mode, we want to discard all previous observations from the
mpegtspacketizer when we get a DISCONT buffer.

This avoids trying to calculate bogus timestamps (estimating them using old
PCR observations).

We only do a hard reset in push-mode. In pull-mode we still need the observations
(in order to seek properly)
2015-07-09 18:15:54 +02:00
Roman Donchenko
649e76575d pngparse: fix a GstCaps object leak
https://bugzilla.gnome.org//show_bug.cgi?id=752127
2015-07-08 17:26:59 +01:00
Tim-Philipp Müller
f0358aac16 tsdemux: remove unnecessary check
This is not public API, use g_assert() instead of
g_return_if_fail(), so that it's compiled out in
releases. It's only called from our code, with &foo.
2015-07-08 14:50:00 +01:00
Tim-Philipp Müller
eeaf4d11b7 tsdemux: add support for KLV metadata streams
There's no timestamps for these streams though, we
might want to make some up based on the last/next
video PTS or so.
2015-07-08 14:50:00 +01:00
Tim-Philipp Müller
f17899a55c pcapparse: fix another regression
Introduced by c4c9fe60b pcapparse: Take buffer directly from the adapter

Using gst_adapter_take_buffer_fast() can lead to buffers that are
made up of multiple memories with the first memory smaller than the
RTP header size, which violates assumptions GstRtpBaseDepayloader
makes, namely that the complete RTP header will be in the first
memory. This leads to such packets being dropped when feeding
them from pcapparse to RTP depayloaders. Use take_buffer() so
we get buffers with a single memory.
2015-07-03 10:30:22 +01:00
Tim-Philipp Müller
aec19c1053 pcapparse: fix regression when handling packets with eth padding
Introduced by c4c9fe60b pcapparse: Take buffer directly from the adapter

Flush any trailing bytes after the payload from the adapter as well,
otherwise we'll read a bogus packet size from the adapter next and
then everything goes downhill from there.

https://bugzilla.gnome.org/show_bug.cgi?id=751879
2015-07-03 10:25:15 +01:00
Sangkyu Park
0ca354eb10 mpegdemux: check pointer before dereferencing
gst_ps_demux_get_stream() could return NULL when it is unknown stream,
check this hasn't happened before dereferencing the returned pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=751528
2015-06-26 18:02:22 +01:00
Vivia Nikolaidou
9664d1a6b1 error-ignore: New element to convert some GstFlowReturn types into others
Can be used to fix misbehaving sinks. It will pass through all buffers
until it encounters GST_FLOW_ERROR or GST_FLOW_NOT_NEGOTIATED (configurable).
At that point it will unref the buffers and return GST_FLOW_NOT_LINKED
(configurable) - until the next READY_TO_PAUSED or FLUSH_STOP.

https://bugzilla.gnome.org/show_bug.cgi?id=750098
2015-06-23 10:28:18 +02:00
Wim Taymans
0a5b6d9344 bayer: update ORC files
Update ORC files with newest ORC to fix backup code generation error.
2015-06-22 13:30:58 +02:00
Tim-Philipp Müller
794c647f59 irtspparse: reflow code to avoid uninitialized variable warning
This should hopefully allow even the most challenged static
code analyzer to figure out that it's all fine. Also makes
the flow clearer.

https://bugzilla.gnome.org/show_bug.cgi?id=751305
2015-06-22 10:51:00 +01:00
Vineeth TM
39d657c274 tsmux: code style fix
trivial patch to add proper ( while checking for if(G_UNLIKELY())

https://bugzilla.gnome.org/show_bug.cgi?id=751305
2015-06-22 10:12:45 +01:00