summaryrefslogtreecommitdiff
path: root/gst
Commit message (Collapse)AuthorAgeFilesLines
* mpegtsmux: fix downstream key unit events handling with hlssinkTim-Philipp Müller2015-09-301-2/+1
| | | | | | | | | | | | | | | | 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.
* dvdspu: fix pgs palette colorsArnaud Vrac2015-09-271-2/+2
| | | | | | U and V were inverted https://bugzilla.gnome.org/show_bug.cgi?id=755239
* audiomixer: fix deadlock when G_DISABLE_ASSERT is not definedTim-Philipp Müller2015-09-261-1/+1
| | | | | This makes the audiomixer unit test time out in master. Broke with 587e7c4
* audioaggregator: Only skip the remaining part of a GAP bufferSebastian Dröge2015-09-181-1/+1
| | | | | | | | 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.
* dvdspu: pgs: fix printf format/argument mismatch in debug statementsTim-Philipp Müller2015-09-171-5/+6
| | | | Fixes compiler warnings when extra debugging is enabled at compile time.
* pcapparse: Hook up the recently added change_state vfunc.Jan Schmidt2015-09-181-1/+6
| | | | | The state change function was implemented, but not installed, making the compiler complain about the unused function.
* Don't throw compiler warnings with G_DISABLE_ASSERTJan Schmidt2015-09-181-2/+7
| | | | | Disable code that warns about unused variables when G_DISABLE_ASSERT is defined, as it is in tarballs and pre-releases.
* intervideosink: render preroll frames as wellTim-Philipp Müller2015-09-162-10/+9
| | | | | | | | | 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
* dvbsuboverlay: Check if downstream supports GstVideoOverlayComposition.Jan Schmidt2015-09-171-3/+13
| | | | | | | | 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
* audioaggregator: Fix mixup of running times and segment positionsSebastian Dröge2015-09-141-38/+100
| | | | | | | | | | | | | 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
* audioaggregator: Use stream time in the position query instead of segment ↵Sebastian Dröge2015-09-141-2/+3
| | | | | | position https://bugzilla.gnome.org/show_bug.cgi?id=753196
* compositor: Ensure all arguments to CLAMP are signed intNirbheek Chauhan2015-09-041-2/+2
| | | | | | | | | | | | 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
* pcapparse: Reset state on flush and state changesOlivier Crête2015-08-311-4/+23
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=753152
* compositor: variables in clamp_rectangle() should be signedNirbheek Chauhan2015-08-291-7/+7
| | | | | | | | 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 bca444ea4a84c39e9989681f892f6e4cb2033cf9.
* Fix file permissions of some filesTim-Philipp Müller2015-08-281-0/+0
|
* compositor: remove check for below zero for unsigned valueLuis de Bethencourt2015-08-281-4/+4
| | | | | | | | 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
* dvbsuboverlay: Fix caps memory leak by making static caps actually staticSebastian Dröge2015-08-271-1/+1
| | | | See https://bugzilla.gnome.org/show_bug.cgi?id=754157
* h264parse/h265parse: Fix negotiation crashNicolas Dufresne2015-08-262-2/+4
| | | | | | | | | | 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
* compositor: Actually use the output resolution for clampingNirbheek Chauhan2015-08-261-17/+41
| | | | | | | | | | 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
* tsdemux: fix latency handling againTim-Philipp Müller2015-08-241-2/+1
| | | | | | | | | | | | 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
* liveadder: fix assertion when copying buffer regionGuillaume Marquebielle2015-08-181-8/+41
| | | | | | | | | | | 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
* videoencoders: use template subset check for accept-capsThiago Santos2015-08-171-0/+2
| | | | | | | It is faster than doing a query that propagates downstream and should be enough Elements: openjpegenc, schroenc, webpenc, pnmenc
* audioencoders: use template subset check for accept-capsThiago Santos2015-08-172-0/+3
| | | | | | | It is faster than doing a query that propagates downstream and should be enough Elements: faac, gsmenc, opusenc, sbcenc, voamrwbenc, adpcmenc, sirenenc
* videoparsers: Use gst_base_parse_merge_tags()Olivier Crête2015-08-168-16/+16
| | | | | | Instead of squashing all upstream tags https://bugzilla.gnome.org/show_bug.cgi?id=679768
* mpegtsdemux: Fix illogical comparisionEdward Hervey2015-08-161-1/+1
| | | | | | | 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
* audiodecoders: use default pad accept-caps handlingThiago Santos2015-08-152-0/+6
| | | | | | | | Avoids useless check of downstream caps when handling an accept-caps query Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec, sbcdec, adpcmdec, sirendec
* videodecoders: use default pad accept-caps handlingThiago Santos2015-08-152-0/+7
| | | | | | | | Avoids useless check of downstream caps when handling an accept-caps query Elements: daaladec, libde265dec, openjpegdec, rsvgdec, schrodec, webpdec, pnmdec, vmncdec, openexrdec
* rtph265depay: make sure we call handle_nal for each NALLuis de Bethencourt2015-08-151-1/+5
| | | | | | | 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
* rtph265pay: Copy metadata in the payloader, but only the relevant onesLuis de Bethencourt2015-08-151-6/+8
| | | | | | | | 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
* rtph265pay: Use GST_WARNING_OBJECT() instead of GST_WARNING()Luis de Bethencourt2015-08-151-2/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=753228
* rtph265pay: fix potential crash when shutting downLuis de Bethencourt2015-08-151-2/+7
| | | | | | | | | | 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
* h264parse: Clear SPS info after processing.Jan Schmidt2015-08-151-0/+1
| | | | | | | | | | | 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
* pngparse: enable accept-intersect and accept-template flags on sinkpadThiago Santos2015-08-141-0/+2
| | | | | | | 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
* videoparsers: enable accept-template flagThiago Santos2015-08-147-0/+7
| | | | | | | 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
* rtph265pay: fix buffer leak when using SPS/PPSLuis de Bethencourt2015-08-141-1/+3
| | | | | | | 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
* rtph265depay: copy metadata in the depayloader, but only the relevant onesLuis de Bethencourt2015-08-142-0/+89
| | | | | | | | 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
* spu-pgs: fix buffer and event leakVineeth TM2015-08-131-2/+5
| | | | | | | | | 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
* dvdspu: Fix event leaksVineeth TM2015-08-131-2/+6
| | | | | | | | 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
* rtph265depay: checking if depay has sps/pps nals before insertionLuis de Bethencourt2015-08-121-1/+1
| | | | | | Related to: https://bugzilla.gnome.org/show_bug.cgi?id=753430 https://bugzilla.gnome.org/show_bug.cgi?id=753228
* rtph265depay: only update the srcpad caps if something else than the ↵Luis de Bethencourt2015-08-121-2/+41
| | | | | | | | | | 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
* rtph265depay: PPS replaces old PPS if it has the same idLuis de Bethencourt2015-08-121-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=753228
* rtph265depay: Insert SPS/PPS NALs into the streamLuis de Bethencourt2015-08-121-0/+50
| | | | | | | | | 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.
* rtph265depay: implement process_rtp_packet() vfuncLuis de Bethencourt2015-08-121-16/+8
| | | | | | | | | | 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
* rtph265depay: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()Luis de Bethencourt2015-08-121-2/+2
| | | | Switching to GST_BUFFER_TIMESTAMP() to be consistent with other rtp code.
* rtph265depay: prevent trying to get 0 bytes from adapterLuis de Bethencourt2015-08-121-4/+6
| | | | | | | | 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
* frei0r: Fix setting string parametersNicolas Dufresne2015-08-111-6/+2
| | | | | | | | | | | 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
* videoparsers: h265: Fix the frame start detection codeSreerenj Balachandran2015-08-111-2/+2
| | | | | | | 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
* videoparsers: h265: Avoid skipping of EOS and EOB nalsSreerenj Balachandran2015-08-111-1/+1
| | | | | | | 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
* asfmux: output TIME segment if we output a stream and won't seek back laterTim-Philipp Müller2015-08-081-2/+31
| | | | | | | | | 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
* h265parse: expose compatible profiles to downstreamSreerenj Balachandran2015-08-071-0/+106
| | | | | | | | | 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