=== release 1.5.90 === 2015-08-19 Sebastian Dröge * configure.ac: releasing 1.5.90 2015-08-19 11:29:55 +0300 Sebastian Dröge * po/el.po: * po/zh_CN.po: po: Update translations 2015-08-13 17:29:58 +0100 Tim-Philipp Müller * gst/multifile/gstmultifilesrc.c: multifilesrc: fix regression with starting from index set via index property When we haven't started yet, set the start_index when we set the index property, so that we start at the right index position after the initial seek. The index property was never really meant to be for writing, but it used to work, so let's support it for backwards compatibility. https://bugzilla.gnome.org/show_bug.cgi?id=739472 2015-08-18 10:52:11 +0100 Alex Ashley * gst/isomp4/qtdemux.c: qtdemux: fix offset calculation when parsing CENC aux info Commit 7d7e54ce6863ff53e188d0276d2651b65082ffdb added support for DASH common encryption, however commit bb336840c0b0b02fa18dc4437ce0ded3d9142801 that went onto master shortly before the CENC commit caused the calculation of the CENC aux info offset to be incorrect. The base_offset was being added if present, but if the base_offset is relative to the start of the moof, the offset was being added twice. The correct approach is to calculate the offset from the start of the moof and use that offset when parsing the CENC aux info. 2015-08-17 14:28:24 -0300 Thiago Santos * ext/flac/gstflacenc.c: flacenc: actually return true for accept-caps query handling 2015-08-17 14:07:10 +0900 Hyunjun Ko * gst/rtp/gstrtpg723pay.c: * gst/rtp/gstrtpgsmpay.c: * gst/rtp/gstrtpklvpay.c: rtp: copy metadata in the (de)payloaders which is missed before https://bugzilla.gnome.org/show_bug.cgi?id=753706 2015-08-16 15:21:51 -0400 Dustin Spicuzza * configure.ac: * sys/directsound/gstdirectsoundsink.c: * sys/directsound/gstdirectsoundsink.h: directsoundsink: allow specifying audio playback device https://bugzilla.gnome.org/show_bug.cgi?id=753670 2015-08-16 13:51:47 -0300 Thiago Santos * ext/flac/gstflacenc.c: flacenc: remove single entry if from loop Iterate from the 2nd channel on and create the 1 channel struct outside to make loop structure simpler and only slightly faster. 2015-08-16 13:21:41 -0300 Thiago Santos * ext/flac/gstflacenc.c: flacenc: implement proper accept-caps Should just compare with what can be immediatelly accepted by the element. flacenc can't renegotiate so if it has a caps already it should only accept if it is that caps otherwise just use the template caps 2015-08-16 13:03:36 -0300 Thiago Santos * ext/flac/gstflacenc.c: flacenc: improve sink pad template caps Removes the need for custom caps query handling and makes it more correct from the beginning on the template. It is a bit uglier to read because there is 1 entry per channel but makes code easier to maintain. 2015-08-16 12:41:56 -0300 Thiago Santos * gst/y4m/gsty4mencode.c: y4mencode: fix gst-launch version in documentation 2015-08-15 22:32:21 -0300 Thiago Santos * ext/speex/gstspeexenc.c: * ext/wavpack/gstwavpackenc.c: * gst/law/alaw-encode.c: * gst/law/mulaw-encode.c: audioencoders: use template subset check for accept-caps It is faster than doing a query that propagates downstream and should be enough Elements: speexenc, wavpackenc, mulawenc, alawenc 2015-08-15 22:29:41 -0300 Thiago Santos * ext/jpeg/gstjpegenc.c: * ext/libpng/gstpngenc.c: * ext/vpx/gstvp8enc.c: * ext/vpx/gstvp9enc.c: * gst/y4m/gsty4mencode.c: videoencoders: use template subset check for accept-caps It is faster than doing a query that propagates downstream and should be enough Elements: jpegenc, pngenc, vp8enc, vp9enc, y4menc 2015-08-16 17:21:24 +0100 Tim-Philipp Müller * gst/audioparsers/gstmpegaudioparse.c: mpegaudioparse: use new baseparse API to fix tag handling https://bugzilla.gnome.org/show_bug.cgi?id=679768 2015-03-17 17:50:37 -0400 Olivier Crête * gst/audioparsers/gstaacparse.c: * gst/audioparsers/gstac3parse.c: * gst/audioparsers/gstamrparse.c: * gst/audioparsers/gstdcaparse.c: * gst/audioparsers/gstsbcparse.c: * gst/audioparsers/gstwavpackparse.c: audioparsers: use new base parse API to fix tag handling https://bugzilla.gnome.org/show_bug.cgi?id=679768 2015-08-16 14:37:53 +0100 Tim-Philipp Müller * gst/audioparsers/gstflacparse.c: flacparse: use new baseparse API and fix tag handling https://bugzilla.gnome.org/show_bug.cgi?id=679768 2015-08-16 13:04:02 +0200 Sebastian Dröge * gst/isomp4/qtdemux.c: qtdemux: Use signed integer type to be able to check for negative subtraction results CID 1315829 2015-08-16 11:50:34 +0100 Luis de Bethencourt * gst/rtp/gstrtpvorbisdepay.c: rtpvorbisdepay: remove dead code payload_buffer must be NULL in ignore_reserved. Check will always be false. Introduced by b1089fb5207697ba26edb4ff66ed0f465c6df3cf CID #1316476 2015-08-15 22:45:53 -0300 Thiago Santos * gst/law/alaw-encode.c: * gst/law/alaw-encode.h: alawenc: port to AudioEncoder base class 2015-08-15 09:16:23 -0300 Thiago Santos * ext/flac/gstflacdec.c: * ext/speex/gstspeexdec.c: * ext/wavpack/gstwavpackdec.c: * gst/law/alaw-decode.c: * gst/law/mulaw-decode.c: audiodecoders: use default pad accept-caps handling Avoids useless check of downstream caps when handling an accept-caps query Elements: flacdec, speexdec, wavpackdec, mulawdec, alawdec 2015-08-15 08:49:57 -0300 Thiago Santos * ext/jpeg/gstjpegdec.c: * ext/libpng/gstpngdec.c: * ext/vpx/gstvp8dec.c: * ext/vpx/gstvp9dec.c: videodecoders: use default pad accept-caps handling Avoids useless check of downstream caps when handling an accept-caps query Elements: jpegdec, pngdec, vp8dec, vp9dec 2015-08-15 11:31:04 -0300 Thiago Santos * gst/law/alaw-decode.c: alawdec: make error handling a bit nicer Print the element along with the debug to make it easier to trace the failures 2015-08-15 11:04:16 -0300 Thiago Santos * gst/law/alaw-decode.c: * gst/law/alaw-decode.h: alawdec: port to audiodecoder base class mulawdec was already ported, alawdec was left behind. 2015-08-15 10:34:14 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: only look for more samples in moofs in pull-mode For playback of some fragmented formats with qtdemux it will try to look for the next moof after finishing one but it is only possible for pull-mode. For playback of streaming fragmented formats such as DASH it should just not try to look for another moof but instead wait for more data. https://bugzilla.gnome.org/show_bug.cgi?id=752602 https://bugzilla.gnome.org/show_bug.cgi?id=752603 2015-08-15 12:58:50 +0200 Sebastian Dröge * gst/audioparsers/gstdcaparse.c: dcaparse: Don't look for a second syncword There are streams out there that consistently contain garbage between every frame so we never ever find a second consecutive syncword. See https://bugzilla.gnome.org/show_bug.cgi?id=738237 2015-08-15 11:12:05 +0100 Tim-Philipp Müller * ext/vpx/gstvp8enc.c: * ext/vpx/gstvp9enc.c: vp8enc, vp9enc: reset multipass file index when stopping encoder Fixes multipass encoding when re-using the same element/pipeline for subsequent encoding runs. https://bugzilla.gnome.org/show_bug.cgi?id=747728 2015-08-15 11:09:42 +0100 Tim-Philipp Müller * ext/vpx/gstvp9enc.c: * ext/vpx/gstvp9enc.h: vp9enc: provide support for multiple pass cache files Some files may provide different caps insight of one stream. Since vp9enc support caps reinit, we should support cache reinit too. If more then file cache file will be created, the naming will be: cache cache.1 cache.2 ... Based on patch by: Oleksij Rempel https://bugzilla.gnome.org/show_bug.cgi?id=747728 2015-08-14 11:41:42 -0300 Thiago Santos * tests/check/elements/aacparse.c: tests: aacparse: use caps query instead of accept-caps The accept-caps query just does a shallow check at the current element while at this test we want it to also look at downstream. So use caps query there. https://bugzilla.gnome.org/show_bug.cgi?id=753623 2015-08-14 11:40:22 -0300 Thiago Santos * gst/audioparsers/gstaacparse.c: * gst/audioparsers/gstac3parse.c: * gst/audioparsers/gstamrparse.c: * gst/audioparsers/gstdcaparse.c: * gst/audioparsers/gstflacparse.c: * gst/audioparsers/gstmpegaudioparse.c: * gst/audioparsers/gstsbcparse.c: * gst/audioparsers/gstwavpackparse.c: audioparsers: 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 15:46:53 +0200 George Kiagiadakis * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtspsrc: send the User-Agent header Sometimes it is useful to know this information on the server side. Other popular implementations (vlc, ffmpeg, ...) also send this header on every message. This includes a new "user-agent" property that the user can set to use a custom User-Agent string. The default is "GStreamer/" https://bugzilla.gnome.org/show_bug.cgi?id=750101 2015-08-14 15:42:42 +0200 George Kiagiadakis * gst/rtsp/gstrtspsrc.c: rtspsrc: wrap gst_rtsp_message_init_request in a local function This will allow adding common request initialization, like the user agent string, in just one place. 2015-08-14 09:36:09 +0530 Prashant Gotarne * gst/audiofx/audioecho.c: audioecho: make sure buffer gets reallocated if max_delay changes https://bugzilla.gnome.org/show_bug.cgi?id=753490 2015-07-09 09:51:26 +0200 Oleksij Rempel * ext/vpx/gstvp8enc.c: * ext/vpx/gstvp8enc.h: vp8enc: provide support for multiple pass cache files Some files may provide different caps insight of one stream. Since vp8enc support caps reinit, we should support cache reinit too. If more then file cache file will be created, the naming will be: cache cache.1 cache.2 ... https://bugzilla.gnome.org/show_bug.cgi?id=747728 2015-04-15 22:51:51 +0200 Ramiro Polla * gst/rtp/gstrtpmp4gdepay.c: rtpmp4gdepay: fix timestamps for RTP packets with multiple AUs Use constantDuration to calculate the timestamp of non-first AU in the RTP packet. If constantDuration is not present in the MIME parameters, its value must be calculated based on the timing information from two consecutive RTP packets with AU-Index equal to 0. https://bugzilla.gnome.org/show_bug.cgi?id=747881 2015-08-14 06:43:13 -0300 Thiago Santos * ext/soup/gstsouphttpsrc.c: souphttpsrc: remove unnecessary if, g_free is null safe 2015-08-14 08:33:56 +0100 Alex Ashley * ext/soup/gstsouphttpsrc.c: * ext/soup/gstsouphttpsrc.h: souphttpsrc: add property to set HTTP method To allow souphttpsrc to be use HTTP methods other than GET (e.g. HEAD), add a "method" property that is a string. If this property is not set, GET is used. https://bugzilla.gnome.org/show_bug.cgi?id=752413 2015-08-14 11:13:01 +0200 Edward Hervey * tests/check/generic/states.c: check: Rename states unit test Makes it easier to differentiate from other modules states unit test 2015-08-14 09:21:25 +0200 Sebastian Dröge * gst/goom/gstaudiovisualizer.c: * gst/goom/gstaudiovisualizer.h: * gst/goom2k1/gstaudiovisualizer.c: * gst/goom2k1/gstaudiovisualizer.h: goom: Rename get_type() function of base class to prevent symbol conflicts This is a problem when statically linking. 2015-08-13 16:32:55 +0200 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: Keep the DTS estimate if we got no DTS after a jitterbuffer reset Otherwise we will just output buffers without timestamps after a reset if no timestamps are provided by upstream, e.g. when using RTSP over TCP. https://bugzilla.gnome.org/show_bug.cgi?id=749536 2015-08-12 17:16:01 +0530 Ravi Kiran K N * gst/matroska/matroska-demux.h: * gst/matroska/matroska-parse.h: matroska: Remove unused variable https://bugzilla.gnome.org/show_bug.cgi?id=753556 2015-08-04 20:59:17 +0300 Sebastian Dröge * gst/rtp/Makefile.am: * gst/rtp/gstrtpL16depay.c: * gst/rtp/gstrtpL24depay.c: * gst/rtp/gstrtpac3depay.c: * gst/rtp/gstrtpac3pay.c: * gst/rtp/gstrtpamrdepay.c: * gst/rtp/gstrtpamrpay.c: * gst/rtp/gstrtpbvdepay.c: * gst/rtp/gstrtpceltdepay.c: * gst/rtp/gstrtpceltpay.c: * gst/rtp/gstrtpdvdepay.c: * gst/rtp/gstrtpdvpay.c: * gst/rtp/gstrtpg722depay.c: * gst/rtp/gstrtpg723pay.c: * gst/rtp/gstrtpg726depay.c: * gst/rtp/gstrtpg729depay.c: * gst/rtp/gstrtpg729pay.c: * gst/rtp/gstrtpgsmdepay.c: * gst/rtp/gstrtpgsmpay.c: * gst/rtp/gstrtpgstdepay.c: * gst/rtp/gstrtpgstpay.c: * gst/rtp/gstrtph261depay.c: * gst/rtp/gstrtph261pay.c: * gst/rtp/gstrtph263depay.c: * gst/rtp/gstrtph263pay.c: * gst/rtp/gstrtph263pdepay.c: * gst/rtp/gstrtph263ppay.c: * gst/rtp/gstrtph264depay.c: * gst/rtp/gstrtph264pay.c: * gst/rtp/gstrtpilbcdepay.c: * gst/rtp/gstrtpj2kdepay.c: * gst/rtp/gstrtpj2kpay.c: * gst/rtp/gstrtpjpegdepay.c: * gst/rtp/gstrtpjpegpay.c: * gst/rtp/gstrtpmp1sdepay.c: * gst/rtp/gstrtpmp2tdepay.c: * gst/rtp/gstrtpmp2tpay.c: * gst/rtp/gstrtpmp4adepay.c: * gst/rtp/gstrtpmp4apay.c: * gst/rtp/gstrtpmp4gdepay.c: * gst/rtp/gstrtpmp4gpay.c: * gst/rtp/gstrtpmp4vdepay.c: * gst/rtp/gstrtpmp4vpay.c: * gst/rtp/gstrtpmpadepay.c: * gst/rtp/gstrtpmpapay.c: * gst/rtp/gstrtpmpvdepay.c: * gst/rtp/gstrtpmpvpay.c: * gst/rtp/gstrtppcmadepay.c: * gst/rtp/gstrtppcmudepay.c: * gst/rtp/gstrtpqcelpdepay.c: * gst/rtp/gstrtpqdmdepay.c: * gst/rtp/gstrtpsbcdepay.c: * gst/rtp/gstrtpsbcpay.c: * gst/rtp/gstrtpsirendepay.c: * gst/rtp/gstrtpspeexdepay.c: * gst/rtp/gstrtpspeexpay.c: * gst/rtp/gstrtpsv3vdepay.c: * gst/rtp/gstrtptheoradepay.c: * gst/rtp/gstrtptheorapay.c: * gst/rtp/gstrtptheorapay.h: * gst/rtp/gstrtputils.c: * gst/rtp/gstrtputils.h: * gst/rtp/gstrtpvorbisdepay.c: * gst/rtp/gstrtpvorbispay.c: * gst/rtp/gstrtpvorbispay.h: * gst/rtp/gstrtpvp8depay.c: * gst/rtp/gstrtpvp8pay.c: * gst/rtp/gstrtpvrawdepay.c: * gst/rtp/gstrtpvrawpay.c: rtp: Copy metadata in the (de)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-10 18:20:15 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: fix small typo in comment 2015-08-10 16:19:18 -0400 Nicolas Dufresne * gst/goom2k1/gstgoom.c: goom2k1/doc: Fixup previous commit 2015-08-10 15:55:19 -0400 Nicolas Dufresne * docs/plugins/gst-plugins-good-plugins-sections.txt: * gst/goom2k1/gstgoom.c: * gst/goom2k1/gstgoom.h: goom2k1/doc: Use GstGoom2k1 namespace The doc generator isn't happy when we have class name clash. Simply use it's own namespace. 2015-08-10 17:10:42 +0530 Prashant Gotarne * gst/audiofx/audioecho.c: audioecho: removed unused variable in set_property unused local variable 'delay' is removed. https://bugzilla.gnome.org/show_bug.cgi?id=753450 2015-08-10 12:45:27 +0100 Tim-Philipp Müller * gst/isomp4/qtdemux.c: qtdemux: fix suboptimal queue iteration code 2015-08-09 17:25:45 +0100 Tim-Philipp Müller * gst/isomp4/qtdemux.c: qtdemux: don't use glib 2.44-only API 2015-07-29 14:14:50 +0100 Alex Ashley * gst/isomp4/fourcc.h: * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux.h: * gst/isomp4/qtdemux_types.c: qtdemux: add support for ISOBMFF Common Encryption This commit adds support for ISOBMFF Common Encryption (cenc), as defined in ISO/IEC 23001-7. It uses a GstProtection event to pass the contents of PSSH boxes to downstream decryptor elements and attached GstProtectionMeta to each sample. https://bugzilla.gnome.org/show_bug.cgi?id=705991 2015-08-10 14:13:50 +0900 Hyunjun Ko * gst/rtp/gstrtph264depay.c: rtph264depay: checking if depay has sps/pps nals before insertion https://bugzilla.gnome.org/show_bug.cgi?id=753430 2015-08-08 16:44:49 +0100 Tim-Philipp Müller * gst/matroska/matroska-mux.c: matroskamux: fix outdated comment The default behaviour was changed in the 0.10 -> 1.x transition, but the comment was not updated. 2015-08-08 17:42:22 +0200 Sebastian Dröge * gst/rtp/gstrtptheorapay.c: rtptheorapay: If flushing a packet failed, go out of the loop immediately 2015-08-08 17:41:02 +0200 Sebastian Dröge * gst/rtp/gstrtpvorbispay.c: rtpvorbispay: If flushing a packet failed, go out of the loop immediately 2015-08-08 17:34:50 +0200 Sebastian Dröge * gst/rtp/gstrtptheorapay.c: * gst/rtp/gstrtptheorapay.h: rtptheorapay: Extract pixel format from the ident header to put it into the sampling field of the caps We always put 4:2:0 into the caps before, which obviously is wrong for 4:2:2 and 4:4:4 formats. 2015-08-06 17:46:13 +0200 George Kiagiadakis * gst/rtp/gstrtpklvdepay.c: * gst/rtp/gstrtpklvpay.c: rtpklv(de)pay: add "RTP" in the klass string GstRTSPMedia uses this classification to detect the real payloader inside a dynpay bin and asserts if it doesn't find it, therefore it is required https://bugzilla.gnome.org/show_bug.cgi?id=753325 2015-08-05 11:13:09 -0300 Thiago Santos * tests/check/elements/rtpaux.c: tests: rtpaux: use a dynamic pt in the test 1) Tests that using dynamic PT instead of the default ones work 2) If we ever decide to change the codec here we don't need to worry about change the PT for the default one of the new codec in the test https://bugzilla.gnome.org/show_bug.cgi?id=746445 2015-08-05 10:53:15 +0900 Hyunjun Ko * gst/rtpmanager/gstrtprtxsend.c: rtprtxsend: print valid type where guint32 is expected https://bugzilla.gnome.org/show_bug.cgi?id=746445 2015-08-06 11:33:37 +0900 Hyunjun Ko * gst/rtp/gstrtpL16pay.c: * gst/rtp/gstrtpg722pay.c: * gst/rtp/gstrtpg723pay.c: * gst/rtp/gstrtpg729pay.c: * gst/rtp/gstrtpgsmpay.c: * gst/rtp/gstrtph261pay.c: * gst/rtp/gstrtph263pay.c: * gst/rtp/gstrtpjpegpay.c: * gst/rtp/gstrtpmp2tpay.c: * gst/rtp/gstrtpmpapay.c: * gst/rtp/gstrtpmpvpay.c: * gst/rtp/gstrtppcmapay.c: * gst/rtp/gstrtppcmupay.c: rtppayload: set standard payload type as default Initialize the PT to the default value of the codec and check if it is still the default before declaring the pt to be dynamic or not when setting the caps. Also use the PT constants from the rtp lib when possible https://bugzilla.gnome.org/show_bug.cgi?id=747965 2015-07-26 12:07:56 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: store the moof-offset also for push mode It will be used in some cases for getting the correct offsets from trun atoms. https://bugzilla.gnome.org/show_bug.cgi?id=752603 2015-07-26 02:09:24 -0300 Thiago Santos * gst/isomp4/atoms.h: * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux_types.h: qtdemux: handle default-base-is-moof flag Handle the flag from the tfhd that signals the base offset to start from the moof atom https://bugzilla.gnome.org/show_bug.cgi?id=752603 2015-07-29 18:54:35 -0600 Glen Diener * gst/matroska/matroska-demux.c: * gst/matroska/matroska-read-common.c: * gst/matroska/matroska-read-common.h: matroskademux: Preserve forward referenced track tags https://bugzilla.gnome.org/show_bug.cgi?id=752850 2015-08-04 18:07:35 -0300 Thiago Santos * tests/check/elements/rtpaux.c: tests: rtpaux: fix test failure The RTP PT for alaw is 8. Less than 50 packets are received in the length of this test so it would never drop a buffer or would drop only the last buffer and it would fail sometimes when the received wouldn't receive the retransmission packet in time. https://bugzilla.gnome.org/show_bug.cgi?id=746445 2015-08-04 20:59:17 +0300 Sebastian Dröge * gst/rtp/gstrtpstreamdepay.c: rtpstreamdepay: Only allow activation in push mode We need a proper caps event from upstream with the full RTP caps as we can't create caps ourselves from thin air. Fixes usage of rtpstreamdepay after e.g. a filesrc or any other element that supports pull mode. https://bugzilla.gnome.org/show_bug.cgi?id=753066 2015-08-04 16:28:17 +0100 Tim-Philipp Müller * ext/soup/gstsouphttpsrc.c: soup: fix typo in translated string https://bugzilla.gnome.org/show_bug.cgi?id=753240 2015-08-04 12:25:46 +0300 Sebastian Dröge * gst/rtp/gstrtph264depay.c: rtph264depay: Put the profile and level into the caps 2015-08-04 12:09:12 +0300 Sebastian Dröge * gst/rtp/gstrtph264depay.c: rtph264depay: Only update the srcpad caps if something else than the codec_data changed h264parse does the same, let's keep the behaviour consistent. As we now include the codec_data inside the stream too here, this causes less caps renegotiation. 2015-08-04 11:48:27 +0300 Sebastian Dröge * gst/rtp/gstrtph264depay.c: rtph264depay: PPS replaces and old PPS if it has the same id, independent of SPS id The spec says: When a picture parameter set NAL unit with a particular value of pic_parameter_set_id is received, its content replaces the content of the previous picture parameter set NAL unit, in decoding order, with the same value of pic_parameter_set_id (when a previous picture parameter set NAL unit with the same value of pic_parameter_set_id was present in the bitstream). 2015-08-03 13:45:59 -0300 Thiago Santos * gst/multifile/gstsplitmuxsink.c: splitmuxsink: remove extra \n at debug message 2015-08-03 13:42:20 -0300 Thiago Santos * gst/multifile/gstsplitmuxsink.c: splitmuxsink: prevent deadlock when states change too fast If the GOP is completed, pads have to start gathering for the next one but it is possible that the the state might go to COLLECTING_GOP_START and back to WAITING_GOP_COMPLETE before the thread has a chance to wake up and proceed, leaving it trapped in the check_completed_gop loop and deadlocking the other threads waiting for it to advance. To solve it, this patch also checks that tha input running time hasn't changed to prevent this scenario. 2015-08-03 17:55:01 +0300 Sebastian Dröge * gst/rtp/gstrtph264depay.c: rtph264depay: Insert SPS/PPS NALs into the stream h264parse 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 spec about the codec_data. 2015-07-30 11:29:27 +0900 Eunhae Choi * ext/soup/gstsouphttpsrc.c: souphttpsrc: handle empty http proxy string 1) If the system http_proxy environment variable is not set or set to an empty string, we must not set proxy to avoid http connection error. 2) In case of proxy property setting, if user want to clear the proxy setting, they should be able to set it to NULL or an empty string again, so this is fixed too. 3) Check if the proxy string was parsed correctly. https://bugzilla.gnome.org/show_bug.cgi?id=752866 2015-07-29 15:46:20 +0530 Ravi Kiran K N * ext/dv/gstdvdemux.c: * ext/dv/gstdvdemux.h: dvdemux: remove unused variable Remove unused variable 'framecount' from dvdemux https://bugzilla.gnome.org/show_bug.cgi?id=753008 2015-07-30 15:32:09 +0900 Vineeth TM * gst/rtsp/gstrtspsrc.c: rtspsrc: 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:21:20 +0900 Vineeth TM * gst/rtp/gstrtpmp4vdepay.c: rtpmp4vdepay: rtpbuffer is being unref'ed twice process_rtp_packet doesn't transfer the rtp buffer to mp4v_process_depay the refernce should not be removed here https://bugzilla.gnome.org/show_bug.cgi?id=753042 2015-07-29 11:26:46 +0100 Sebastian Dröge * gst/rtsp/gstrtspsrc.c: rtspsrc: 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 19:28:33 +1000 Jan Schmidt * gst/multifile/gstsplitmuxsink.c: splitmuxsink: Support mpegtsmux as a muxer. As a fallback, look for a pad template sink_%d on the muxer when requesting pads, to support mpegtsmux https://bugzilla.gnome.org/show_bug.cgi?id=752999 2015-06-25 01:35:27 +1000 Jan Schmidt * gst/multifile/gstsplitmuxpartreader.c: * gst/multifile/gstsplitmuxpartreader.h: splitmuxsrc: Use a separate lock to delay typefind. Don't hold the main splitmux part lock over the parent state change function, as it prevents posting error messages that happen. Since the purpose is to prevent typefinding from proceeding, use a separate mutex just for that. 2015-07-29 13:43:50 +0900 Vineeth TM * gst/matroska/matroska-read-common.c: matroska: fix memory leak After adding to tag list, key_val is not being free'd resulting in memory leak https://bugzilla.gnome.org/show_bug.cgi?id=752992 2015-07-27 13:34:14 +0900 Manasa Athreya * gst/isomp4/qtdemux.c: qtdemux: fix 16-bit PCM audio advertised with 'raw ' fourcc 'NONE' and 'raw ' fourcc don't always contain U8 audio, it can be more bits as well, in which case it's just like 'twos'. https://bugzilla.gnome.org/show_bug.cgi?id=752613 2015-07-24 15:10:05 +0200 Dimitrios Katsaros * sys/v4l2/gstv4l2object.c: * sys/v4l2/gstv4l2src.c: v4l2: Allow framerate to be large then 100pfs This limit was arbitrary. We still fixate near 100pfs for compatibility. https://bugzilla.gnome.org/show_bug.cgi?id=752825 2015-07-25 03:25:28 -0400 Olivier Crête * gst/avi/gstavidemux.c: avidemux: Stop without posting error on flushing This could just be a normal pipeline shutdown. 2015-07-23 15:00:08 +0900 Hyunjun Ko * sys/v4l2/gstv4l2bufferpool.c: v4l2bufferpool: set GST_BUFFER_COPY_FLAGS to copy flags also https://bugzilla.gnome.org/show_bug.cgi?id=752618 2015-07-16 18:09:30 +0100 Tim-Philipp Müller * tests/check/Makefile.am: * tests/check/elements/.gitignore: * tests/check/elements/matroskademux.c: tests: add minmal matroskademux test for subtitle output Some of the subtitle chunks will have embedded NUL-terminators (last three), some don't (first three), some will have markup, some won't, some will be valid UTF-8 (all but last), some won't (last stanza). https://bugzilla.gnome.org/show_bug.cgi?id=752421 2015-07-16 18:49:26 +0300 Dimitrios Christidis * gst/matroska/matroska-demux.c: matroskademux: fix for subtitle buffers with NUL terminators Commit 45892ec8 created a regression where g_utf8_validate() would fail if the subtitle buffer had a NUL terminator as part of the data. https://bugzilla.gnome.org/show_bug.cgi?id=752421 2015-07-21 13:31:05 +0200 Stian Selnes * gst/rtp/gstrtpvp8depay.c: rtpvp8depay: Check available bytes before copy Need to check that the number of bytes we want to copy from the adapter actually is available and handle the error case gracefully. This error may happen if malformed packets are received and we don't have a complete frame. https://bugzilla.gnome.org/show_bug.cgi?id=752663 2015-07-16 09:32:36 +0900 Paul Hyunil * gst/isomp4/fourcc.h: * gst/isomp4/qtdemux.c: qtdemux: Support subtitle when track subtype is fourcc_subt https://bugzilla.gnome.org/show_bug.cgi?id=752655 2015-07-20 16:59:40 +0800 Song Bing * sys/v4l2/gstv4l2bufferpool.c: v4l2bufferpool: Set timestamp when queue buffer. Should set timestamp when queue buffer. https://bugzilla.gnome.org/show_bug.cgi?id=752618 2015-07-16 15:12:17 +0200 Havard Graff * gst/rtpmanager/gstrtpmux.c: * tests/check/elements/rtpmux.c: rtpmux: handle different ssrc's on sinkpads Do this by not putting the ssrc from the src pads in the caps used to probe other sinkpads, and then intersecting with it later. https://bugzilla.gnome.org/show_bug.cgi?id=752491 2015-07-16 17:19:03 +0100 Tim-Philipp Müller * gst/avi/gstavimux.c: * gst/matroska/matroska-demux.c: * gst/matroska/matroska-mux.c: * gst/matroska/matroska-parse.c: * gst/matroska/webm-mux.c: Update mailing list address from sourceforge to freedesktop 2015-07-15 13:44:52 +0300 Dimitrios Christidis * gst/matroska/matroska-demux.c: matroskademux: fix trailing '*' displayed with some text subtitles The subtitle buffer we push out should not include a NUL terminator as part of the data, we just add such a terminator for safety, but it should not be included in the buffer size. A NUL terminator is not valid UTF-8, so checks will fail if it's included in the size, and the NUL will be replaced by the fallback character specified when converting, i.e. '*'. https://bugzilla.gnome.org/show_bug.cgi?id=752421 2015-07-15 18:23:05 +0200 Wim Taymans * ext/pulse/pulsedeviceprovider.c: * ext/pulse/pulseutil.c: * ext/pulse/pulseutil.h: pulse: add properties to GstDevice Add the extra properties we get from pulse to the GstDevice we expose with the device monitor 2015-07-15 17:20:20 +0530 Ravi Kiran K N * gst/audiofx/audioinvert.c: * gst/audiofx/audiowsincband.c: audiofx: Fix typo in example pipelines Fix typo in example pipelines of audiowsincband and audioinvert. https://bugzilla.gnome.org/show_bug.cgi?id=752416 2015-04-15 18:27:04 +0200 George Kiagiadakis * gst/multifile/gstsplitmuxsink.c: splitmuxsink: add a "format-location" signal that allows better control over filenames In certain applications, splitting into files named after a base location template and an incremental sequence number is not enough. This signal gives more fine-grained control to the application to decide how to name the files. https://bugzilla.gnome.org/show_bug.cgi?id=750106 2015-04-15 20:13:27 +0300 Ilya Konstantinov * sys/osxaudio/gstosxcoreaudio.c: osxaudiosrc: no resampling on OS X Unlike Remote IO, AUHAL doesn't have built-in resampling for sources -- confirmed by Core Audio engineer Doug Wyatt: http://lists.apple.com/archives/coreaudio-api/2006/Sep/msg00088.html https://bugzilla.gnome.org/show_bug.cgi?id=743758 2015-04-15 18:29:14 +0300 Ilya Konstantinov * sys/osxaudio/gstosxcoreaudio.c: osxaudiosrc: avoid get_channel_layout This only produces a warning and serves no purpose. https://bugzilla.gnome.org/show_bug.cgi?id=743758 2015-04-07 15:40:14 +0530 Arun Raghavan * sys/osxaudio/gstosxcoreaudio.c: osxaudio: Avoid making a duplicate structure in caps for mono/stereo case For 1ch or 2ch devices, we just need to set the caps to allow both options since CoreAudio will up/downmix appropriately. Also fixes the condition for the 2ch case to be exact, rather than at least 2 channels since the downmix will not take place in the >stereo case. 2015-04-06 16:22:34 +0530 Arun Raghavan * sys/osxaudio/gstosxcoreaudio.c: * sys/osxaudio/gstosxcoreaudiocommon.c: * sys/osxaudio/gstosxcoreaudiohal.c: * sys/osxaudio/gstosxcoreaudioremoteio.c: osxaudio: Don't set the format on an initialized AudioUnit We need to initialize the AudioUnit early to be able to probe the underlying device, but according to the AudioUnitInitialize() and AudioUnitUninitialize() documentation, format changes should be done while the AudioUnit is uninitialized. So we explicitly uninitialize the AudioUnit during a format change and reinitialize it when we're done. 2015-04-06 15:55:59 +0530 Arun Raghavan * sys/osxaudio/gstosxaudioringbuffer.c: * sys/osxaudio/gstosxcoreaudio.c: * sys/osxaudio/gstosxcoreaudio.h: osxaudio: Minor spelling fix (unitialize -> uninitialize) 2015-03-21 20:34:25 +0200 Ilya Konstantinov * sys/osxaudio/gstosxaudiosink.c: * sys/osxaudio/gstosxaudiosrc.c: * sys/osxaudio/gstosxcoreaudio.c: * sys/osxaudio/gstosxcoreaudio.h: osxaudio: Fix lockup in _audio_unit_property_listener _audio_unit_property_listener is called either from a Core Audio thread or as a result of a Core Audio API (e.g. AudioUnitInitialize) from our own thread. In the latter case, osxbuf can be already locked (GStreamer's mutex is not recursive). We introduce the flag cached_caps_valid and use it instead of nullifying cached_caps when we cannot lock on osxbuf. https://bugzilla.gnome.org/show_bug.cgi?id=743758 2015-03-12 12:15:12 +0200 Ilya Konstantinov * sys/osxaudio/gstosxcoreaudio.c: osxaudio: Invalidate cached caps on format change Listen for changes in hardware stream format and channel layout, and invalidate cached caps (since they contain the preferred caps). https://bugzilla.gnome.org/show_bug.cgi?id=743758 2015-03-09 23:34:06 +0200 Ilya Konstantinov * sys/osxaudio/gstosxaudioringbuffer.c: * sys/osxaudio/gstosxaudiosink.c: * sys/osxaudio/gstosxaudiosink.h: * sys/osxaudio/gstosxaudiosrc.c: * sys/osxaudio/gstosxaudiosrc.h: * sys/osxaudio/gstosxcoreaudio.c: * sys/osxaudio/gstosxcoreaudio.h: * sys/osxaudio/gstosxcoreaudiocommon.c: * sys/osxaudio/gstosxcoreaudiocommon.h: * sys/osxaudio/gstosxcoreaudiohal.c: * sys/osxaudio/gstosxcoreaudioremoteio.c: osxaudio: Overhaul of probing caps - Probing caps is unified between source and sink - Hardware stream format is now reported as preferred capabilities (dynamically updated when hardware configuration changes) - Get hardware channel layout from Remote IO just like from HAL - More comprehensive mapping between AudioChannelLabel and GstAudioChannelPosition - Support for unpositioned channel layouts - Announce stereo-mono upmixing/downmixing in caps https://bugzilla.gnome.org/show_bug.cgi?id=743758 2015-03-09 23:15:56 +0200 Ilya Konstantinov * sys/osxaudio/gstosxcoreaudio.c: osxaudio: AudioUnitInitialize on open Call AudioUnitInitialize upon open. Otherwise, we cannot get (hardware) stream format nor channel layout from the outer scope. 2015-07-12 14:27:15 +0100 Tim-Philipp Müller * gst/rtp/gstrtpL16depay.c: * gst/rtp/gstrtpL24depay.c: * gst/rtp/gstrtpac3depay.c: * gst/rtp/gstrtpamrdepay.c: * gst/rtp/gstrtpbvdepay.c: * gst/rtp/gstrtpceltdepay.c: * gst/rtp/gstrtpdvdepay.c: * gst/rtp/gstrtpg722depay.c: * gst/rtp/gstrtpg723depay.c: * gst/rtp/gstrtpg726depay.c: * gst/rtp/gstrtpg729depay.c: * gst/rtp/gstrtpgsmdepay.c: * gst/rtp/gstrtpgstdepay.c: * gst/rtp/gstrtph261depay.c: * gst/rtp/gstrtph263depay.c: * gst/rtp/gstrtph263pdepay.c: * gst/rtp/gstrtph264depay.c: * gst/rtp/gstrtpilbcdepay.c: * gst/rtp/gstrtpj2kdepay.c: * gst/rtp/gstrtpjpegdepay.c: * gst/rtp/gstrtpklvdepay.c: * gst/rtp/gstrtpmp1sdepay.c: * gst/rtp/gstrtpmp2tdepay.c: * gst/rtp/gstrtpmp4adepay.c: * gst/rtp/gstrtpmp4gdepay.c: * gst/rtp/gstrtpmp4vdepay.c: * gst/rtp/gstrtpmpadepay.c: * gst/rtp/gstrtpmparobustdepay.c: * gst/rtp/gstrtpmpvdepay.c: * gst/rtp/gstrtppcmadepay.c: * gst/rtp/gstrtppcmudepay.c: * gst/rtp/gstrtpqcelpdepay.c: * gst/rtp/gstrtpqdmdepay.c: * gst/rtp/gstrtpsbcdepay.c: * gst/rtp/gstrtpsirendepay.c: * gst/rtp/gstrtpspeexdepay.c: * gst/rtp/gstrtpsv3vdepay.c: * gst/rtp/gstrtptheoradepay.c: * gst/rtp/gstrtpvorbisdepay.c: * gst/rtp/gstrtpvp8depay.c: rtp: depayloaders: 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. https://bugzilla.gnome.org/show_bug.cgi?id=750235 2015-05-27 19:19:27 +0100 Tim-Philipp Müller * gst/rtp/gstrtpvrawdepay.c: rtpvrawdepay: 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 map the base class has already done. https://bugzilla.gnome.org/show_bug.cgi?id=750235 2015-07-10 00:13:32 +0300 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: Fix indention 2015-07-09 23:59:10 +0300 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: Always estimate DTS from the current clock time Estimating it from the RTP time will give us the PTS, so in cases of PTS!=DTS we would produce wrong DTS. As now the estimated DTS is based on the clock, don't store it in the jitterbuffer items as it would otherwise be used in the skew calculations and would influence the results. We only really need the DTS for timer calculations. https://bugzilla.gnome.org/show_bug.cgi?id=749536 2015-07-09 09:26:09 -0300 Thiago Santos * tests/check/elements/.gitignore: gitignore: ignore rtph263 test 2015-07-08 23:47:44 -0300 Thiago Santos * tests/check/elements/rtpjitterbuffer.c: rtpjitterbuffer: fix build error with gcc (Debian 4.9.2-21) 4.9.2 Replace static constants with macros to make gcc happy CC elements/elements_rtpjitterbuffer-rtpjitterbuffer.o elements/rtpjitterbuffer.c:387:1: error: initializer element is not constant static const GstClockTime PCMU_BUF_DURATION = PCMU_BUF_MS * GST_MSECOND; ^ elements/rtpjitterbuffer.c:388:1: error: initializer element is not constant static const guint PCMU_BUF_SIZE = 64000 * PCMU_BUF_MS / 1000; ^ elements/rtpjitterbuffer.c:390:5: error: initializer element is not constant PCMU_BUF_CLOCK_RATE * PCMU_BUF_MS / 1000; 2015-07-08 23:40:45 -0300 Thiago Santos * tests/check/elements/rtpjitterbuffer.c: rtpjitterbuffer: run indent and fix some comments Fix indent on this file and break some comment lines into two to make it fit 80 chars per line 2015-07-08 15:02:24 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: rework segment event handling for adaptive streaming When a new time segment is received upstream is going to restart with a new atom. Make the neededbytes and todrop variables reflect that to avoid waiting too much or dropping the initial bytes that contain the header. 2015-07-08 12:35:55 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: push data from adapter before starting new segment The adapter might have data remaining from the previous segment, push it all before clearing the adapter and starting a new segment. It can accumulate data if it had pushed and got not-linked, returning immediately without processing all the data. Before starting a new segment this data should be handled. 2015-07-08 19:59:13 +0300 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: Calculate DTS from the clock if we had none for the first packet after a reset https://bugzilla.gnome.org/show_bug.cgi?id=749536 2015-07-08 21:08:36 +0200 Havard Graff * gst/rtpmanager/gstrtpjitterbuffer.c: * tests/check/elements/rtpjitterbuffer.c: rtpjitterbuffer: fix gap-time calculation and remove "late" The amount of time that is completely expired and not worth waiting for, is the duration of the packets in the gap (gap * duration) - the latency (size) of the jitterbuffer (priv->latency_ns). This is the duration that we make a "multi-lost" packet for. The "late" concept made some sense in 0.10 as it reflected that a buffer coming in had not been waited for at all, but had a timestamp that was outside the jitterbuffer to wait for. With the rewrite of the waiting (timeout) mechanism in 1.0, this no longer makes any sense, and the variable no longer reflects anything meaningful (num > 0 is useless, the duration is what matters) Fixed up the tests that had been slightly modified in 1.0 to allow faulty behavior to sneak in, and port some of them to use GstHarness. https://bugzilla.gnome.org/show_bug.cgi?id=738363 2015-06-30 11:21:31 +0200 Stian Selnes * gst/rtpmanager/gstrtpjitterbuffer.c: Revert "rtpjitterbuffer: Fix expected_dts calc in calculate_expected" This reverts commit 05bd708fc5e881390fe839803b53144393d95ab0. The reverted patch is wrong and introduces a regression because there may still be time to receive some of the packets included in the gap if they are reordered. 2015-07-07 23:53:02 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: flush samples before adding more from moof Avoids accumulating all samples from a fragmented stream that could lead to a 'index-too-big' error once it goes over 50MB of data. It could reach that before 2h of playback so it doesn't take that long. As upstream elements are providing data in time format they should be the ones that have more information about the full media index and should be able to seek if possible. 2015-07-07 23:56:12 -0300 Thiago Santos * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux.h: qtdemux: rename upstream_newsegment to upstream_format_is_time upstream_newsegment isn't really clear on what it means, it is set to TRUE when the upstream element sends a segment in TIME format, so rename it to be more clear about it. It is important to know this because it means that upstream has a notion of time and qtdemux is likely being driven by an upstream element that is reading from a higher level abstraction than a file, such as a DASH, MSS or DLNA element. 2015-07-07 21:31:08 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: fix leak by flushing previous sample info from trak In fragmented streaming, multiple moov/moof will be parsed and their previously stored samples array might leak when new values are parsed. The parse_trak and callees won't free the previously stored values before parsing the new ones. In step-by-step, this is what happens: 1) initial moov is parsed, traks as well, streams are created. The trak doesn't contain samples because they are in the moof's trun boxes. n_samples is set to 0 while parsing the trak and the samples array is still NULL. 2) moofs are parsed, and their trun boxes will increase n_samples and create/extend the samples array 3) At some point a new moov might be sent (bitrate switching, for example) and parsing the trak will overwrite n_samples with the values from this trak. If the n_samples is set to 0 qtdemux will assume that the samples array is NULL and will leak it when a new one is created for the subsequent moofs. This patch makes qtdemux properly free previous sample data before creating new ones and adds an assert to catch future occurrences of this issue when the code changes. 2015-07-07 16:46:33 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: fix index size check and debug message It is allocating samples_count + n_samples, not only n_samples 2015-07-08 17:02:05 +0300 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: Calculate receive time if we don't have any This is required to properly schedule packet loss timers and make sure all our calculations work properly. https://bugzilla.gnome.org/show_bug.cgi?id=749536 2015-07-08 15:13:17 +0300 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: Handle seqnum gaps in TCP streams without erroring out or overflowing calculations That is, handle DTS==GST_CLOCK_TIME_NONE correctly. https://bugzilla.gnome.org/show_bug.cgi?id=749536 2015-07-08 20:31:42 +0900 Vineeth T M * gst/avi/gstavidemux.c: avidemux: fix event leak when seek fails in avidemux, event is not being freed. https://bugzilla.gnome.org/show_bug.cgi?id=752117 2015-07-08 12:02:22 +0200 Stian Selnes * gst/rtp/gstrtph263depay.c: * tests/check/Makefile.am: * tests/check/elements/rtph263.c: rtph263depay: Make sure payload is large enough Plus new unit test. https://bugzilla.gnome.org/show_bug.cgi?id=752112 2015-07-08 08:59:49 +0900 Vineeth TM * gst/rtp/gstrtpklvdepay.c: rtpklvdepay: fix printf format compiler warning v_len is of type guint64, but while print the value(16 + len_size + v_len) G_GSIZE_FORMAT is being used instead of G_GUINT64_FORMAT https://bugzilla.gnome.org/show_bug.cgi?id=752100 2015-07-07 20:25:47 +0100 Tim-Philipp Müller * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.args: * docs/plugins/gst-plugins-good-plugins.hierarchy: * docs/plugins/inspect/plugin-rtp.xml: docs: add new RTP elements to docs 2015-07-07 20:07:31 +0100 Tim-Philipp Müller * tests/check/elements/rtp-payloading.c: tests: rtp-payloading: add basic unit test for KLV payloading Also make it so that the mtu is always set if specified, not only in case of the rather weird bufferlist test code path. This allows us to easily make the payloader fragment a payload across multiple output packets by setting a small MTU on it. 2015-07-07 19:58:42 +0100 Tim-Philipp Müller * gst/rtp/gstrtpklvdepay.c: * gst/rtp/gstrtpklvdepay.h: rtpklvdepay: improve start detection and handle fragmented KLV units 2015-07-05 20:25:10 +0100 Tim-Philipp Müller * gst/rtp/Makefile.am: * gst/rtp/gstrtp.c: * gst/rtp/gstrtpklvdepay.c: * gst/rtp/gstrtpklvdepay.h: rtp: add SMPTE 336M KLV metadata depayloader http://tools.ietf.org/html/rfc6597 2014-08-09 10:08:42 +0100 Tim-Philipp Müller * gst/rtp/Makefile.am: * gst/rtp/gstrtp.c: * gst/rtp/gstrtpklvpay.c: * gst/rtp/gstrtpklvpay.h: rtp: add SMPTE 336M KLV metadata payloader http://tools.ietf.org/html/rfc6597 2015-07-07 16:59:20 +0200 Stefan Sauer * gst/isomp4/atoms.c: * gst/isomp4/atoms.h: * gst/isomp4/atomsrecovery.c: * gst/isomp4/properties.h: * gst/matroska/matroska-mux.c: * gst/rtpmanager/rtpsource.c: docs: fix "Symbol name not found at the start of the comment block" Add symbols or change comment into a regular comment. 2015-07-07 16:58:53 +0200 Stefan Sauer * gst/audioparsers/gstamrparse.h: docs: remove outdated doc strings 2015-07-03 23:10:40 +0200 Stefan Sauer * docs/plugins/gst-plugins-good-plugins-docs.sgml: docs: add missing plugins and ensure master doc is sorted 2015-07-07 15:54:41 +0100 Luis de Bethencourt * gst/imagefreeze/gstimagefreeze.c: Revert "imagefreeze: Remove impossible error condition" This reverts commit d46631c5c7312ad613397f8238c7a9714ae3ae94. pad only handle EOS events but not EOS flow, and will push the buffer again resulting in an assertion error. So we should not handle the buffer and return EOS flow. 2015-07-07 15:50:50 +0100 Tim-Philipp Müller * gst/rtp/gstrtpg729depay.c: rtpg729depay: unmap rtp buffer in error path 2015-07-07 15:48:40 +0100 Tim-Philipp Müller * gst/rtp/gstrtpg729pay.c: rtpg729pay: fix buffer leak The handle_buffer vfunc takes ownership of the input buffer. Fixes elements/rtp-payloading under valgrind. 2015-07-02 08:52:43 +0200 Tobias Mueller * gst/goom/goom_core.c: goom: Initialised variables to remove compiler warnings goom_core.c: In function 'goom_update': goom_core.c:685:5: error: 'param2' may be used uninitialized in this function [-Werror=maybe-uninitialized] goom_lines_switch_to (goomInfo->gmline2, mode, param2, amplitude, couleur); ^ goom_core.c:684:5: error: 'param1' may be used uninitialized in this function [-Werror=maybe-uninitialized] goom_lines_switch_to (goomInfo->gmline1, mode, param1, amplitude, couleur); ^ https://bugzilla.gnome.org/show_bug.cgi?id=752053 2015-07-07 09:18:39 +0100 Tim-Philipp Müller * gst/rtp/gstrtph261pay.c: rtph261pay: fix indentation 2015-07-06 19:11:00 +0900 Jimmy Ohn * gst/rtp/gstrtph261pay.c: rtph261pay: Fix uninitialized variable compiler error endpos variable does not correctly understand in the 4.6.3 GCC version. So compile error appears when we do compile rtph261pay using jhbuild. This patch is fixed the compile error in 4.6.3 GCC version. https://bugzilla.gnome.org/show_bug.cgi?id=751985 2014-11-12 12:08:58 +0100 Jan Alexander Steffens (heftig) * gst/flv/gstflvdemux.c: flvdemux: Handle seek flags properly Allows for non-keyframe seeks. https://bugzilla.gnome.org/show_bug.cgi?id=738570 2015-02-24 10:50:52 -0300 Thiago Santos * gst/isomp4/qtdemux.c: qtdemux: avoid looping reading the 'moof' atom forever It gets stuck if it only finds a moof and no mfra/mfro or moov atoms. Skip the moof to continue the parsing to have it either play or error out. https://bugzilla.gnome.org/show_bug.cgi?id=745089 2015-06-26 13:24:17 +0900 Vineeth TM * ext/flac/gstflacdec.c: flacdec: improve error handling for files which have corrupted header, libflac is not able to process the metadata properly. We just try to ignore the error and continue with the processing, since metadata parsing is not making much of a difference to libflac https://bugzilla.gnome.org/show_bug.cgi?id=751334 2015-07-06 20:16:38 +0900 Hyunjun Ko * sys/ximage/ximageutil.c: ximagesrc: add meta transform function ximage metadata can't be transformed or copied, but provide an empty transformation function instead of NULL to allow unconditional calling of metas' transform functions. https://bugzilla.gnome.org/show_bug.cgi?id=751778 2014-06-16 16:14:28 +0200 Stian Selnes * gst/rtp/gstrtph263pdepay.c: rtph263pdepay: init debug category https://bugzilla.gnome.org/show_bug.cgi?id=752012 2014-06-20 10:59:14 +0200 Stian Selnes * gst/rtp/gstrtpvp8depay.c: rtpv8depay: ignore reserved bit in payload descriptor Draft 16 of "RTP Payload Format for VP8" states in section 4.2 that: R: Bit reserved for future use. MUST be set to zero and MUST be ignored by the receiver. https://bugzilla.gnome.org/show_bug.cgi?id=751929 2015-07-04 20:56:42 +0200 Stian Selnes * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * gst/rtp/gstrtph261depay.c: * gst/rtp/gstrtph261pay.c: rtph261pay: rtph261depay: Add documentation https://bugzilla.gnome.org/show_bug.cgi?id=751982 2015-07-03 21:58:14 +0200 Stefan Sauer * common: Automatic update of common submodule From f74b2df to 9aed1d7 2015-07-03 14:29:16 +0200 Sebastian Dröge * gst/rtp/gstrtph261pay.c: rtph261pay: Fix compiler warning gstrtph261pay.c: In function 'gst_rtp_h261_pay_class_init': gstrtph261pay.c:1003:17: error: variable 'gobject_class' set but not used [-Werror=unused-but-set-variable] GObjectClass *gobject_class; 2015-07-03 14:03:05 +0200 Sebastian Dröge * gst/rtp/gstrtph261depay.c: rtph261depay: Let the base class push the buffer so it can deal with the flow return 2015-07-03 14:11:35 +0200 Sebastian Dröge * gst/rtp/gstrtph261pay.c: rtph261pay: Remove unused adapter 2015-07-03 13:17:24 +0200 Sebastian Dröge * gst/rtp/gstrtpspeexpay.c: speexpay: Directly attach payload to the output buffer instead of copying it 2015-07-03 13:07:20 +0200 Sebastian Dröge * gst/rtp/gstrtpsbcpay.c: sbcpay: Attach payload directly to the output instead of copying 2014-12-01 14:18:40 +0100 Stian Selnes * gst/rtp/Makefile.am: * gst/rtp/gstrtp.c: * gst/rtp/gstrtph261depay.c: * gst/rtp/gstrtph261depay.h: * gst/rtp/gstrtph261pay.c: * gst/rtp/gstrtph261pay.h: * tests/check/elements/rtp-payloading.c: rtp: add H.261 RTP payloader and depayloader Implementation according to RFC 4587. Payloader create fragments on MB boundaries in order to match MTU size the best it can. Some decoders/depayloaders in the wild are very strict about receiving a continuous bit-stream (e.g. no no-op bits between frames), so the payloader will shift the compressed bit-stream of a frame to align with the last significant bit of the previous frame. Depayloader does not try to be fancy in case of packet loss. It simply drops all packets for a frame if there is a loss, keeping it simple. https://bugzilla.gnome.org/show_bug.cgi?id=751886 2015-07-03 12:18:52 +0200 Sebastian Dröge * gst/rtp/gstrtpmpvdepay.c: rtpmpvdepay: Don't forget to unmap the input buffer 2015-07-03 12:14:47 +0200 Sebastian Dröge * gst/rtp/gstrtpmpvpay.c: rtpmpvpay: Create buffer lists instead of pushing each buffer individually 2015-07-03 12:03:59 +0200 Sebastian Dröge * gst/rtp/gstrtpmpapay.c: rtpmpapay: Use buffer lists instead of pushing each fragment individually 2015-07-03 10:51:57 +0200 Sebastian Dröge * gst/rtp/gstrtpmp4apay.c: rtpmp4apay: Create buffer lists and don't copy payload memory 2015-06-29 16:14:18 +0200 Miguel París Díaz * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: Consider timers len to compare with RTP_MAX_DROPOUT When there are a lot of small gaps, we can consider that there is a big gap (too losses) to reset the buffer. https://bugzilla.gnome.org/show_bug.cgi?id=751636 2015-06-29 15:53:52 +0200 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: * tests/check/elements/rtpjitterbuffer.c: rtpjitterbuffer: If possible, always update the current time before looping over all timers If we have a clock, update "now" now with the very latest running time we have. If timers are unscheduled below we otherwise wouldn't update now (it's only updated when timers expire), and also for the very first loop iteration now would otherwise always be 0. Also the time is used for the timeout functions, e.g. to calculate any times for the next timeouts and we would otherwise pass too old times there. https://bugzilla.gnome.org/show_bug.cgi?id=751636 2015-07-02 14:34:57 +0100 Luis de Bethencourt * sys/v4l2/gstv4l2transform.c: v4l2transform: fix memory leak tmp needs to be freed before going out of scope in 'done'. CID #1308954 2015-07-02 12:23:45 +0200 Sebastian Dröge * gst/rtp/gstrtph263ppay.c: rtph263ppay: Generate buffer lists and attach the payload directly instead of copying it 2015-07-02 09:48:02 +0200 Sebastian Dröge * gst/rtp/gstrtph263pdepay.c: rtph263pdepay: Simplify code a bit and do less direct memcpy and let GstBuffer do that for us 2015-07-02 09:17:59 +0200 Sebastian Dröge * gst/rtp/gstrtph263pay.c: * gst/rtp/gstrtph263pay.h: rtph263pay: Stop using an adapter and directly use the buffer We always pushed one buffer into the adapter, then handled exactly that one buffer and flushed it from the adapter. Now also don't memcpy() the actual payload but just attach the input buffer's data to the output buffer. This code still needs some serious refactoring/rewriting. 2015-07-01 21:57:28 +0200 Sebastian Dröge * gst/rtp/gstrtpgsmpay.c: rtpgsmpay: Remove non-existing includes for now git add -p mistake. 2015-07-01 19:29:07 +0200 Sebastian Dröge * gst/rtp/gstrtpgstpay.c: rtpgstpay: Use the return value of gst_buffer_append() 2015-07-01 19:19:13 +0200 Sebastian Dröge * gst/rtp/gstrtpgsmpay.c: rtpgsmpay: Attach payload to the output buffer instead of copying it 2015-07-01 17:58:56 +0200 Sebastian Dröge * gst/rtp/gstrtpg729pay.c: rtpg729pay: Attach payload directly to output buffers instead of copying 2015-07-01 17:43:51 +0200 Sebastian Dröge * gst/rtp/gstrtpg723pay.c: rtpg723pay: Attach payload buffer to the output instead of copying 2015-07-01 17:30:39 +0200 Sebastian Dröge * gst/rtp/gstrtpdvdepay.c: rtpdvdepay: Map the output buffer once instead of once every 80 bytes 2015-07-01 21:46:46 +0900 Jimmy Ohn * gst/avi/gstavidemux.c: avidemux: fix return type of index_entry_offset_search() It's a compare function and may return a negative value, so should for correctness and consistency return a signed integer. https://bugzilla.gnome.org/show_bug.cgi?id=751780 2015-07-01 14:12:57 +0200 Miguel París Díaz * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: refactor handle_next_buffer The goal of this patch is making handle_next_buffer function more readable avoiding unnecesary gotos and adding other cosmetic changes. 2015-07-01 15:40:25 +0200 Sebastian Dröge * gst/rtp/gstrtpac3pay.c: rtpac3pay: Attach the payload to the output buffer instead of copying it Might also want to produce buffer lists here if needed. 2015-07-01 15:38:47 +0200 Sebastian Dröge * gst/rtp/gstrtpilbcdepay.c: * gst/rtp/gstrtpsirendepay.c: rtp: Fix indention 2015-07-01 12:37:11 +0200 Sebastian Dröge * tests/examples/rtp/Makefile.am: * tests/examples/rtp/client-VP8-OPUS.sh: * tests/examples/rtp/server-VTS-VP8-ATS-OPUS.sh: rtp: Add examples with VTS/ATS for VP8/OPUS Let's have an example with modern codecs. 2015-06-30 18:11:33 +0200 Sebastian Dröge * gst/rtp/gstrtph264pay.c: rtph264pay: Use GST_WARNING_OBJECT() instead of GST_WARNING() 2015-06-30 14:06:20 +0200 Sebastian Dröge * gst/rtp/gstrtpvp8depay.c: vp8depay: Don't lock/map every non-keyframe buffer twice Just copy the complete header instead of first looking at the first byte and then at the remaining 10 bytes. 2015-06-29 16:05:44 +0100 Luis de Bethencourt * sys/v4l2/gstv4l2object.c: v4l2: document fallthrough cases Pacify coverity and document fallthrough cases in switch statements. CID #1308948, #1308947, #1308946 2015-06-29 10:36:58 +0200 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: Revert "rtpjitterbuffer: If we have an immediate timeout, don't try to find an earlier timeout" This reverts commit 0c21cd7177ea883c710999147ddcedb19004d182. If we have multiple immediate timers, we want to first handle the one with the lowest sequence number... which would be broken now. Instead of this we should just use a GSequence for the timers, and have them sorted first by timestamp, and for equal timestamps by sequence number. Then we would always only have to take the very first timer from the list and never have to look at any others. 2015-06-29 10:14:05 +0200 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: If we have an immediate timeout, don't try to find an earlier timeout If we have lots of such immediate timeouts, we would otherwise have quadratic runtime in the number of timeouts. 2015-06-19 18:01:03 -0300 Thiago Santos * gst/multifile/gstsplitmuxsrc.c: splitmuxsrc: sticky events are sent automatically from the pad No need to send them explicitly from the element https://bugzilla.gnome.org/show_bug.cgi?id=751240 2015-06-19 18:00:40 -0300 Thiago Santos * gst/multifile/gstsplitmuxsrc.c: splitmuxsrc: make sure to push sticky events before adding pad It allows the caps to be set on the pad before being added for dynamic autoplugging to work. https://bugzilla.gnome.org/show_bug.cgi?id=751240 2015-06-26 00:05:29 +0900 Hyunjun Ko * gst/rtsp/gstrtspsrc.c: * gst/rtsp/gstrtspsrc.h: rtspsrc: Add new ntp-time-source property and deprecate use-pipeline-clock property Enable to use new ntp-time-source property of rtpbin https://bugzilla.gnome.org/show_bug.cgi?id=751496 2015-06-25 23:19:58 +0900 Hyunjun Ko * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpsession.c: rtpbin/session: fix description https://bugzilla.gnome.org/show_bug.cgi?id=751496 2015-06-25 10:57:25 +0100 Luis de Bethencourt * gst/imagefreeze/gstimagefreeze.c: * gst/matroska/matroska-demux.c: * tests/examples/shapewipe/shapewipe-example.c: docs: decodebin2 -> decodebin 2015-06-25 10:47:06 +0100 Luis de Bethencourt * gst/deinterlace/gstdeinterlace.c: deinterlace: update example pipeline Update reference to decodebin2 to decodebin 2015-06-25 10:45:35 +0100 Luis de Bethencourt * gst/deinterlace/gstdeinterlace.c: deinterlace: remove dead assignments Values in fields_required and same_buffer are overwritten before used. Removing assignment 2015-06-25 10:06:07 +0100 Tim-Philipp Müller * ext/Makefile.am: * ext/mikmod/Makefile.am: * ext/mikmod/README: * ext/mikmod/drv_gst.c: * ext/mikmod/gstmikmod.c: * ext/mikmod/gstmikmod.h: * ext/mikmod/mikmod_reader.c: * ext/mikmod/mikmod_types.c: * ext/mikmod/mikmod_types.h: * m4/Makefile.am: * m4/libmikmod.m4: * win32/MANIFEST: * win32/vs8/libgstmikmod.vcproj: mikmod: remove ancient unported plugin This hasn't been touched in 11 years, and clearly no one's been missing it. 2015-06-23 20:15:13 +0900 Gilbok Lee * gst/isomp4/qtdemux.c: qtdemux: does not detect orientation Most files don't contain the values for transposing the coordinates back to the positive quadrant so qtdemux was ignoring the rotation tag. To be able to properly handle those files qtdemux will also ignore the transposing values to only detect the rotation using the values abde from the transformation matrix: [a b c] [d e f] [g h i] https://bugzilla.gnome.org/show_bug.cgi?id=738681 2015-06-25 00:04:16 +0200 Sebastian Dröge * configure.ac: Back to development