=== release 1.7.2 === 2016-02-19 Sebastian Dröge * configure.ac: releasing 1.7.2 2016-02-19 10:31:48 +0200 Sebastian Dröge * po/af.po: * po/az.po: * po/bg.po: * po/ca.po: * po/cs.po: * po/da.po: * po/de.po: * po/el.po: * po/en_GB.po: * po/eo.po: * po/es.po: * po/eu.po: * po/fi.po: * po/fr.po: * po/gl.po: * po/hr.po: * po/hu.po: * po/id.po: * po/it.po: * po/ja.po: * po/lt.po: * po/lv.po: * po/mt.po: * po/nb.po: * po/nl.po: * po/or.po: * po/pl.po: * po/pt_BR.po: * po/ro.po: * po/ru.po: * po/sk.po: * po/sl.po: * po/sq.po: * po/sr.po: * po/sv.po: * po/tr.po: * po/uk.po: * po/vi.po: * po/zh_CN.po: * po/zh_HK.po: * po/zh_TW.po: po: Update translations 2016-02-18 18:33:13 +0100 Philippe Normand * gst/isomp4/qtdemux.c: qtdemux: plug leaks in cenc aux info parsing 2016-02-18 13:43:07 +0000 Tim-Philipp Müller * tests/check/Makefile.am: tests: fix spurious souphttpsrc test timouts Set GSETTINGS_BACKEND=memory, apparently there's something about fork() and the dconf backend (or whatever else that drags in or activates) that messes up locking and causes timeouts due to deadlocks in g_mutex_lock(), since everything works fine with CK_FORK=no as well. 2016-02-18 11:10:14 +0200 Sebastian Dröge * gst/matroska/matroska-demux.c: matroskademux: Unmap wavpack header buffer after creating it Otherwise it will be mapped writable all the time and we can't read from it anywhere. https://bugzilla.gnome.org/show_bug.cgi?id=762239 2015-12-08 18:49:40 +0100 Stian Selnes * tests/check/elements/rtpjitterbuffer.c: rtpjitterbuffer: Add test for big seqnum gap handling Make sure that the packets queued when detecting a big gap are pushed after reset (5 consective seqnums) and not dropped. https://bugzilla.gnome.org/show_bug.cgi?id=762211 2016-02-17 15:03:13 +0000 Tim-Philipp Müller * gst/rtp/gstrtputils.h: rtp: sprinkle some G_GNUC_INTERNAL for internal utils functions 2016-02-09 13:17:00 +0000 Alex Ashley * gst/isomp4/qtdemux.c: qtdemux: only transform protected caps once Commit 7873bede3134b15e5066e8d14e54d1f5054d2063 (https://bugzilla.gnome.org/show_bug.cgi?id=760774) changed the behaviour of qtdemux to call gst_qtdemux_configure_stream() for every new moof. When playing a protected stream, gst_qtdemux_configure_stream() calls gst_qtdemux_configure_protected_caps(). The gst_qtdemux_configure_protected_caps() function takes the original media format, puts this in a field called "original-media-type" and then changes the caps to "application/x-cenc". The gst_qtdemux_configure_protected_caps() did not handle the case of being called multiple times, causing it to incorrectly set the caps. The second call was causing the caps to be set to: application/x-cenc, original-media-type"application/x-cenc" This commit makes gst_qtdemux_configure_protected_caps() check that the caps have already been transformed, so that it only gets changed once. https://bugzilla.gnome.org/show_bug.cgi?id=761769 2016-02-17 13:26:02 +0000 Luis de Bethencourt * gst/rtp/gstrtph264depay.c: * gst/rtp/gstrtph265depay.c: * gst/rtp/gstrtputils.c: * gst/rtp/gstrtputils.h: rtp: h264/h265: avoid duplication of read_golomb() There is no need to have two identical implementations of the read_golomb function. https://bugzilla.gnome.org/show_bug.cgi?id=761606 2016-02-17 14:37:44 +0100 Ognyan Tonchev * gst/matroska/matroska-demux.c: matroskademux: Simple implementation of TRICKMODE_KEY_UNITS When the trickmode key-units flag is set on the segment, simply skip any sample on a video stream that isn't a keyframe https://bugzilla.gnome.org/show_bug.cgi?id=762185 2015-08-21 14:15:18 +0100 Tim-Philipp Müller * gst/matroska/matroska-demux.c: matroska-demux: send GAP events for lagging audio and video streams too Send GAP events for non-subtitle streams too if they lag too much behind, but use a higher threshold than for subtitles. This helps with fixing prerolling with a file where one of the audio streams only has data starting from 19s onwards. It's not a complete fix yet, it also requires changes elsewhere, such as in baseparse, to make sure caps are propagated. https://bugzilla.gnome.org/show_bug.cgi?id=614460 https://bugzilla.gnome.org/show_bug.cgi?id=753899 2015-12-23 19:54:13 +0100 Stian Selnes * gst/rtp/Makefile.am: * gst/rtp/gstrtp.c: * gst/rtp/gstrtpvp9depay.c: * gst/rtp/gstrtpvp9depay.h: * gst/rtp/gstrtpvp9pay.c: * gst/rtp/gstrtpvp9pay.h: rtpvp9pay: rtpvp9depay: Initial implementation of draft 01 Quick and dirty implementation of an RTP payloader and depayloader for VP9. In particalur it assumes no spatial or temporal layering, non-flexible mode, and some other bits and pieces. https://bugzilla.gnome.org/show_bug.cgi?id=754773 2016-02-16 09:02:30 +0900 Vineeth TM * gst/avi/gstavidemux.c: avidemux: Fix string memory leak codec_name is not being freed in all conditions leading to memory leak https://bugzilla.gnome.org/show_bug.cgi?id=762117 2015-12-10 12:15:52 +0100 Miguel París Díaz * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpbin.h: rtpbin: add "get-session" signal This gets the GstRTPSession element, as compared to the RTPSession object that is returned by get-internal-session. https://bugzilla.gnome.org/show_bug.cgi?id=759293 2016-02-16 00:19:00 +0000 Tim-Philipp Müller * gst/rtp/Makefile.am: * gst/rtp/gstrtp.c: rtp: h265: hook up move RTP H.265 payloader/depayloader to build https://bugzilla.gnome.org/show_bug.cgi?id=761606 2016-02-16 00:14:27 +0000 Tim-Philipp Müller * gst/rtp/gstrtph265depay.c: * gst/rtp/gstrtph265depay.h: * gst/rtp/gstrtph265pay.c: rtp: h265: use common meta utility functions https://bugzilla.gnome.org/show_bug.cgi?id=761606 2016-02-05 18:18:31 +0000 Tim-Philipp Müller * gst/rtp/gstrtph265depay.h: * gst/rtp/gstrtph265pay.h: * gst/rtp/gstrtph265types.h: rtp: h265: remove codecparser dependency from h265 payloader/depayloader Looks like it just uses the NAL enums and nothing else from the codecparsers, and that's the only reason it had to be moved from -good to -bad when it was originally added. We can probably keep those NAL enums up to date enough, so let's remove the codecparser dependency so it can be moved back into -good. https://bugzilla.gnome.org/show_bug.cgi?id=761606 2016-02-16 00:24:58 +0000 Tim-Philipp Müller Merge branch 'plugin-move-rtp-h265' Move RTP H.265 payloader/depayloader from -bad to -good. https://bugzilla.gnome.org/show_bug.cgi?id=761606 2016-02-05 15:34:51 +0000 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: * gst/rtp/gstrtph265depay.h: gstrtph265depay: keep consistency with rtph264depay Use gst_rtp_drop_meta() and the same function prototype for gst_rtp_copy_meta() to keep consistency with the RTP elements in gst-plugins-good 2016-02-05 13:56:34 +0000 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: rtph265depay: fix termination of access unit Only consider the access unit complete when the next-occurring VCL NAL unit has the first bit after its NAL unit header equal to 1. 2016-01-15 16:10:02 +0000 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: rtph265depay: fix unneeded sub-buffer creation We create a sub-buffer just to copy over its metas and then throw it away immediately, just use the original input buffer directly. 2016-01-15 15:56:59 +0000 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: rtph265pay: add "send VPS/SPS/PPS with every key frame" mode It's not enough to have timeout or event based VPS/SPS/PPS information sent in RTP packets. There are some scenarios when key frames may appear more frequently than once a second, in which case the minimum timeout for "config-interval" of 1 second for sending VPS/SPS/PPS isn't enough. It might also be desirable in general to make sure the VPS/SPS/PPS is available with every keyframe (packet loss aside), so receivers can actually pick up decoding immediately from the first keyframe if VPS/SPS/PPS is not signaled out of band. This commit adds the possibility to send VPS/SPS/PPS with every key frame. This mode can be enabled by setting "config-interval" property to -1. In this case the payloader will add VPS, SPS and PPS before every key (IDR) frame. https://bugzilla.gnome.org/show_bug.cgi?id=757892 2016-01-15 15:19:41 +0000 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: * gst/rtp/gstrtph265pay.h: rtph265pay: change config-interval property type from uint to int This way we can use -1 as special value, which is nicer than MAXUINT. https://bugzilla.gnome.org/show_bug.cgi?id=757892 2015-08-15 16:22:20 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: 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 14:45:34 +0100 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: 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 11:41:40 +0100 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: rtph265pay: Use GST_WARNING_OBJECT() instead of GST_WARNING() https://bugzilla.gnome.org/show_bug.cgi?id=753228 2015-08-15 11:30:36 +0100 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: 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-14 15:08:08 +0100 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: 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 11:49:51 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: * gst/rtp/gstrtph265depay.h: 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-12 17:54:52 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: 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:22:42 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: 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 16:43:48 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: rtph265depay: PPS replaces old PPS if it has the same id https://bugzilla.gnome.org/show_bug.cgi?id=753228 2015-08-12 16:11:00 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: 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 15:49:50 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: 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:14:50 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: 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 14:59:53 +0100 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: 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-07-29 17:29:28 +0100 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: rtp: remove dead assignment Value set to ret will be overwritten at least once at the end of the while loop, removing assignment. 2015-04-24 16:48:23 +0100 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: remove unused enum items PROP_LAST This were probably added to the enums due to cargo cult programming and are unused. 2015-03-06 14:54:41 +0000 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: rtp: donl_present variable unused donl_present is not implemented, yet the value is set and checked a few times. Cleaning this. CID #1249687 2015-01-08 15:36:04 +0000 Luis de Bethencourt * gst/rtp/gstrtph265pay.c: rtp: value truncated too short creates dead code type is truncated to 0-31 with "& 0x1f", but right after that it is checks if the value is equivalent to GST_H265_NAL_VPS, GST_H265_NAL_SPS, and GST_H265_NAL_PPS (which are 32, 33, and 34 respectively). Obviously, this will never be True if the value is maximum 31 after the truncation. The intention of the code was to truncate to 0-63. 2015-01-08 15:27:44 +0000 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: rtp: fix nal unit type check After further investigation the previous commit is wrong. The code intended to check if the type is 39 or the ranges 41-44 and 48-55. Just like gsth265parse.c does. Type 40 would not be complete. 2015-01-08 13:47:09 +0000 Luis de Bethencourt * gst/rtp/gstrtph265depay.c: rtp: fix dead code and check for impossible values nal_type is the index for a GstH265NalUnitType enum. There are two types of dead code here: First, after checking if nal_type is >= 39 there are two OR conditionals that check if the value is in ranges higher than that number, so if nal_type >= 39 falls in the True branch those other conditions aren't checked and if it falls in the False branch and they are checked, they will always also be False. They are redundant. Second, the enum has a range of 0 to 40. So the checks for ranges higher than 41 should never be True. Removing this redundant checks. CID 1249684 2014-10-16 10:34:01 +0200 Thijs Vermeir * gst/rtp/gstrtph265depay.c: * gst/rtp/gstrtph265depay.h: * gst/rtp/gstrtph265pay.c: * gst/rtp/gstrtph265pay.h: rtp: add h265 RTP payloader + depayloader 2016-02-15 11:51:46 +0900 Vineeth TM * tests/check/elements/rtpmux.c: tests: rtpmux: Fix element memory leak https://bugzilla.gnome.org/show_bug.cgi?id=762057 2016-02-12 20:57:29 +0100 Stefan Sauer * gst/monoscope/monoscope.c: monoscope: rework the scaling code The running average was wrong and the resulting scaling factor was only held in place using the CLAMP. In addtion we are now convering quickly to volume changes. FInally now with this change, we can change the resolution defines and everythign adjusts. 2016-01-28 17:00:55 +0100 Stefan Sauer * gst/monoscope/convolve.c: * gst/monoscope/monoscope.c: * gst/monoscope/monoscope.h: monoscope: use constants in the drawing code Make all the drawing ops be based on the constants. This way we can change the fixed size at least at compile time. 2016-01-28 09:51:17 +0100 Stefan Sauer * gst/monoscope/gstmonoscope.c: monoscope: replace hardcoded values by constants This at least establishes the relationship. 2016-01-28 09:43:12 +0100 Stefan Sauer * gst/monoscope/convolve.c: * gst/monoscope/convolve.h: * gst/monoscope/monoscope.c: * gst/monoscope/monoscope.h: monoscpe: make the convolver use dynamic memory Replace all #defines with members and initialize the convolver with a parameter. 2016-01-28 08:56:44 +0100 Stefan Sauer * gst/monoscope/README: monoscope: update README We can already create multiple instances. 2016-01-28 08:53:35 +0100 Stefan Sauer * gst/monoscope/convolve.c: * gst/monoscope/monoscope.c: monoscope: code cleanup Use constants more often. Cleanup comments and add more to explain how things work. 2016-02-08 23:41:32 +0000 Luis de Bethencourt * gst/deinterlace/gstdeinterlace.c: deinterlace: remove check for impossible condition Commit bd27a1f30b4458f2edee53c76dd07fb35904b61d added a few error handling memory management checks. These check srccaps to see if it needs to be unreferenced before returning, in the case of invalid_caps this goto jump always happens before srccaps is set, so it will always be NULL in this error label. CID #1352035 2016-02-08 12:48:46 +0100 Piotr Drąg * po/POTFILES.in: po: update POTFILES https://bugzilla.gnome.org/show_bug.cgi?id=761705 2016-02-08 15:31:55 +0000 Luis de Bethencourt * sys/v4l2/gstv4l2allocator.c: v4l2allocator: Fix spelling of reenqueueing To match commit 7d7074cef0272cd5155098bfc2bda6849dd89267. I love the idea of aiming for the maximum number of consecutive vowels. 2016-02-08 10:17:49 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2allocator.c: v4l2allocator: Fix spelling of queueing Didn't know which one to choose between queuing and queueing, so I picked the one with the biggest amount of vowels in a row ;-P (both are acceptable apparently) 2016-02-07 15:02:35 -0500 Nicolas Dufresne * ext/jpeg/gstjpegdec.c: jpegdec: Don't pass the same data over and over We already pass the entire frame to the decoder. If the decoder ask for more data, don't pass the same data again as this leads to infinit loop. Instead, simply fail the fill function to signal the problem with that frame. It will then be skipped properly. https://bugzilla.gnome.org/show_bug.cgi?id=761670 2016-02-08 00:10:33 +0000 Tim-Philipp Müller * gst/matroska/lzo.c: matroska: get rid of _stdint.h include 2016-02-05 20:00:57 -0300 Thiago Santos * tests/check/Makefile.am: tests: extend the AM_TESTS_ENVIRONMENT from check.mak To get the CK_DEFAULT_TIMEOUT defined for all tests https://bugzilla.gnome.org/show_bug.cgi?id=761472 2016-02-05 18:04:31 -0300 Thiago Santos * autogen.sh: * common: Automatic update of common submodule From 86e4663 to b64f03f 2016-01-30 18:43:30 +0100 Sebastian Dröge * gst/rtp/gstrtpjpegpay.c: rtpjpegpay: Skip APP and JPG markers and print warnings for unknown markers For APP/JPG markers the size is following and we have to skip that. This is not really a problem unless the marker contains e.g. a preview JPEG or something else that we might interprete as another marker. 2016-01-26 22:37:30 +0900 Seungha Yang * gst/isomp4/qtdemux.c: qtdemux: fix framerate calculation for fragmented format qtdemux calculates framerate using duration and the number of sample. In case of fragmented mp4 format, however, the number of sample can be figure out after parsing every moof box. Because qtdemux does not parse every moof in QTDEMUX_STATE_HEADER state, it will cause incorrect framerate calculation. This patch will triger gst_qtdemux_configure_stream() for every new moof. Then, framerate will be calculated by using duration and n_samples of the moof. https://bugzilla.gnome.org/show_bug.cgi?id=760774 2016-01-28 22:36:23 +0900 Seungha Yang * gst/isomp4/qtdemux.c: qtdemux: handling zero segment-duration edit list Based on document ISO_IEC_14496-12, edit list box can have segment duration as zero. It does not imply that media_start equals to media_stop. But, it just indicates a sample which should be presented at the first. This patch derives segment duration using media_time and duration of file. And set derived duration to segment-duration. https://bugzilla.gnome.org/show_bug.cgi?id=760781 2016-01-28 21:36:54 +0900 Seungha Yang * gst/isomp4/qtdemux.c: * gst/isomp4/qtdemux.h: qtdemux: expose streams with first moof for fragmented format In case of push mode, qtdemux expose streams after got moov box. We can not guarantee that a moov box has sample data such as sample duration and the number of sample in stbl box for fragmented format case. So, if a moov has no sample data, streams will not be exposed until get the first moof. https://bugzilla.gnome.org/show_bug.cgi?id=760779 2016-01-27 18:48:17 +0100 Sebastian Dröge * gst/deinterlace/gstdeinterlace.c: deinterlace: Check for subset instead of non-empty intersection for ACCEPT_CAPS 2016-01-27 18:44:23 +0100 Sebastian Dröge * gst/deinterlace/gstdeinterlace.c: deinterlace: Unset RECONFIGURE flag on srcpad whenever we configure new caps Prevents double-negotiation during startup and in some other cases. 2016-01-27 16:43:22 +0100 Sebastian Dröge * tests/check/elements/deinterlace.c: deinterlace: Add negotiation unit tests for all 4 modes These now check the output caps based on the input caps and a following capsfilter and make sure the caps are exactly as expected. https://bugzilla.gnome.org/show_bug.cgi?id=760995 https://bugzilla.gnome.org/show_bug.cgi?id=720388 2016-01-26 17:39:20 +0100 Vivia Nikolaidou * gst/deinterlace/gstdeinterlace.c: deinterlace: Do passthrough in auto mode if downstream only supports interlaced If the following conditions are met: 1) upstream and downstream caps are compatible 2) upstream is interlaced 3) downstream doesn't support progressive mode then deinterlace will just do passthrough instead of failing to link. This is done with the following scenario in mind: videotestsrc ! "video/x-raw,interlace-mode=interleaved" ! deinterlace name=dein_src ! tee name=t ! queue ! deinterlace name=dein_file ! filesink t. ! queue ! deinterlace name=dein_desktop ! autovideosink In this case, dein_src will do the deinterlacing. However, videotestsrc ! "video/x-raw,interlace-mode=interleaved" ! deinterlace name=dein_src ! tee name=t ! queue ! deinterlace name=dein_file ! filesink t. ! queue ! deinterlace name=dein_desktop ! autovideosink t. ! queue ! "video/x-raw,interlace-mode=interleaved" ! fakesink In this case, caps auto-negotiation will make dein_file and dein_desktop do the deinterlacing, while dein_src will be passthrough. https://bugzilla.gnome.org/show_bug.cgi?id=760995 2016-01-26 18:05:51 +0100 Sebastian Dröge * gst/deinterlace/gstdeinterlace.c: * gst/deinterlace/gstdeinterlace.h: deinterlace: Add mode=auto-strict In this mode we will passthrough all progressive caps but interlaced caps must be caps where we actually support deinterlacing. This is the only difference between auto and auto-strict, auto would passthrough all unsupported interlaced caps. https://bugzilla.gnome.org/show_bug.cgi?id=720388 2016-01-26 17:50:30 +0100 Sebastian Dröge * gst/deinterlace/gstdeinterlace.c: deinterlace: Implement reconfiguration a bit better And e.g. consider reconfiguration caused by RECONFIGURE events too. https://bugzilla.gnome.org/show_bug.cgi?id=720388 2016-01-26 11:57:09 +0100 Sebastian Dröge * gst/deinterlace/gstdeinterlace.c: deinterlace: Rewrite caps negotiation Previously the result of the CAPS query and ACCEPT_CAPS depended on what kind of caps were last set, and e.g. if we last had interlaced caps or not. That's just broken. Also previously the handling of non-sysmem caps features was rather random and unusuable. Now the behaviour is the following, depending on the mode property: 1) mode=disabled Completely do passthrough of everything 2) mode=interlaced Only accept formats we can actually deinterlace, and accept interlaced and progressive content and always run the deinterlacer and output progressive content 3) mode=auto (i.e. playbin) Accept all progressive formats as passthrough, accept all formats that we can deinterlace ourselves (which we do then), but also accept everything else for which we then just passthrough. In auto mode, deinterlacing is best effort: If we can, we deinterlace, if we can't we just output interlaced content. https://bugzilla.gnome.org/show_bug.cgi?id=720388 https://bugzilla.gnome.org/show_bug.cgi?id=760553 2016-01-26 11:34:40 +0100 Sebastian Dröge * gst/deinterlace/gstdeinterlace.c: deinterlace: Remove unused, obsolete bufferalloc code 2016-01-26 18:50:38 +0100 Matej Knopp * gst/matroska/matroska-mux.c: matroskamux: use A_AAC instead of A_AAC/MPEGx/y Some GoogleCast compatible devices ignore A_AAC/MPEGx/y tracks; Also according to http://wiki.multimedia.cx/index.php?title=Matroska A_AAC/MPEGx/y is obsolete https://bugzilla.gnome.org/show_bug.cgi?id=761144 2016-01-25 17:21:24 +0100 Víctor Manuel Jáquez Leal * gst/isomp4/qtdemux.c: * gst/rtp/gstrtph261pay.c: gst: Fix unintialized variable warnings While cross-compiling with Linaro GCC 5.1-2015.08, it complained about a couple unitialized variables. This patch initializes them to zero. https://bugzilla.gnome.org/show_bug.cgi?id=761094 2016-01-25 15:03:23 +0100 George Kiagiadakis * gst/multifile/gstsplitmuxpartreader.c: splitmuxsrc: print potentially negative offset with a sign 2016-01-21 17:41:55 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2: Re-add colorimetry field for RGB formats This time, check if it's an RGB format and sets the transformation matrix to identity. The rest of the colorimetry information is meaningfull and shall be kept. https://bugzilla.gnome.org/show_bug.cgi?id=759624 2016-01-22 10:03:50 +0100 Wim Taymans * sys/v4l2/gstv4l2object.c: v4l2: fix sRGB colorspace definition V4l2 can also use the sRGB colorspace for YUV formats and thus needs a default matrix. 2016-01-21 15:29:46 +0000 Tim-Philipp Müller * gst/debugutils/gsttaginject.c: taginject: fix sample pipeline in docs https://bugzilla.gnome.org/show_bug.cgi?id=679571 2016-01-21 10:49:44 +0100 Wim Taymans * sys/v4l2/gstv4l2object.c: v4l2: Add adobe colorspace support Use the new primaries and transfer function for Adobe RGB. Explicitly list the colorimetry instead of using the default GStreamer ones. The defaults for BT2020, for example, do not match. Explicitly set the matrix of SRGB to RGB. 2016-01-20 13:41:33 +0200 Sebastian Dröge * ext/vpx/gstvp8enc.c: vp8enc: Ensure that we always have valid frame user data before using it Otherwise we're going to dereference NULL pointers. 2016-01-20 10:02:48 +0200 Sebastian Dröge * ext/vpx/gstvpxdec.c: vpxdec: Unref frame in all code paths of handle_frame() https://bugzilla.gnome.org/show_bug.cgi?id=760666 2016-01-19 22:49:20 +0100 Thibault Saunier * ext/vpx/gstvpxenc.c: vpxenc: Unref frame on ERROR All code paths for handle_frame() must somehow take ownership of the frame, be it by actually unreffing, forwarding the frame elsewhere or storing it for later. http://bugzilla.gnome.org/show_bug.cgi?id=760666 2016-01-20 18:20:43 +1100 Jan Schmidt * sys/v4l2/gstv4l2deviceprovider.c: v4l2: Don't free props structure twice. gst_v4l2_device_provider_probe_device() frees the passed props structure, don't free it again in the caller. 2016-01-19 15:15:35 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Cleanup uneeded return statement 2016-01-19 15:14:59 -0500 Nicolas Dufresne * sys/v4l2/gstv4l2object.c: v4l2object: Don't set colorimetry for non YUV formats Setting colormetry in caps for RGB have no meaning, but worst it confuses the converters downstream. https://bugzilla.gnome.org/show_bug.cgi?id=759624 2016-01-19 13:01:17 +0000 Tim-Philipp Müller * gst/rtp/gstrtpchannels.c: * gst/rtp/gstrtpchannels.h: rtp: fix compiler warnings with gcc-6 In file included from gstrtpL16depay.h:27:0, from gstrtp.c:73: gstrtpchannels.h:154:33: error: 'channel_orders' defined but not used [-Werror=unused-const-variable] static const GstRTPChannelOrder channel_orders[] = 2016-01-19 14:57:03 +0200 Sebastian Dröge * gst/wavparse/gstwavparse.c: wavparse: Don't play anything after the end of the data chunk even when seeking Especially in push mode we would completely ignore the size of the data chunk when not stop position is given for the seek. Instead make sure that the end offset is at most the end of the data chunk if known. Without this we would output anything after the data chunk, possibly causing loud noises if the media file is followed by an INFO chunk or an ID3 tag. 2016-01-19 14:55:57 +0200 Sebastian Dröge * gst/wavparse/gstwavparse.c: wavparse: Don't do calculations with -1 offsets when handling SEGMENT events We use that to signal "infinity", taking the difference between that and some other value is not going to give us any useful result for the end offsets of segments. 2016-01-18 11:30:45 +0200 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.h: Revert "WIP: rtpjitterbuffer: Add RFC7273 media clock handling" This reverts commit 271501f6576de4d141e7c2f618e28b9e3b1e5b38. It wasn't meant to be pushed yet as the commit message indicates. 2016-01-12 14:01:21 -0800 Aleix Conchillo Flaqué * gst/rtsp/gstrtspsrc.c: rtspsrc: handle rtcp/srtcp caps properly when using interleaved data We check the stream profile and use the proper RTCP caps: application/x-srtcp if we are using a secure profile and application/x-rtcp otherwise. https://bugzilla.gnome.org/show_bug.cgi?id=760556 2016-01-05 16:15:16 +0200 Sebastian Dröge * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.h: WIP: rtpjitterbuffer: Add RFC7273 media clock handling 2016-01-15 11:36:35 +0000 Thibault Saunier * ext/vpx/gstvpxenc.c: vp8enc: Return FLOW_ERROR when an error accures FALSE would mean FLOW_OK https://bugzilla.gnome.org/show_bug.cgi?id=760666 2016-01-15 03:57:45 +0530 Nirbheek Chauhan * sys/osxaudio/gstosxcoreaudiohal.c: osxaudio: break as soon as the device is found No need to loop further if there's no side-effects for it 2016-01-15 03:56:49 +0530 Nirbheek Chauhan * sys/osxaudio/gstosxaudioringbuffer.c: * sys/osxaudio/gstosxcoreaudiohal.c: osxaudio: Fix error handling when selecting/opening devices Post an element error when the CoreAudio device cannot be selected or opened. Also ensure that we post a GST_ERROR with more detail. 2016-01-13 23:40:20 +0100 Sebastian Dröge * gst/wavparse/gstwavparse.c: wavparse: When flushing on EOS, don't process more data than the "data" size Even if we have more data queued up when flushing than the size of the data chunk, don't process and output it. If the data size is known, this likely contains another chunk (e.g. an INFO chunk) or things like ID3 tags. Just outputting them as if they were data is going to cause unexpected behaviour and unpleasant audio noises. 2014-08-29 15:40:23 +0200 Antonio Ospite * tests/check/pipelines/wavenc.c: tests: fix a thinko in the wavenc example The code is supposed to follow somehow what the comment above says, that is to have one channel with a wave of freq 440 and the other channel with a wave of freq 880, but an off by one error results in frequencies of 0 and 440. https://bugzilla.gnome.org/show_bug.cgi?id=735673 2014-08-29 15:07:58 +0200 Antonio Ospite * gst/interleave/interleave.c: interleave: Fix the example by setting channel-masks in the sink pads The current example does not work, it fails with: ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstWavParse:wavparse0: Internal data flow error. gstwavparse.c(2178): gst_wavparse_loop (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstWavParse:wavparse0: streaming task paused, reason not-negotiated (-4) This is because negotiation with wavenc gets messed up by the missing channel positions configuration. The proper way to define the channel layout when using the interleave element in code would be to set the channel-positions property, but gst-launch-1.0 does not know how to deal with arrays; so the example pipeline works around the issue by setting the channel-masks in the sink pads. Also fix a repetition in the deinterleave example description https://bugzilla.gnome.org/show_bug.cgi?id=735673 2016-01-11 16:29:55 +0000 Tim Sheridan * gst/audioparsers/gstsbcparse.c: sbcparse: Fix frame length calculation SBC frame length calculation wasn't being rounded up to the nearest byte (as specified in the A2DP 1.0 specification, section 12.9). This could cause 'stereo' and 'joint stereo' mode SBC streams to have incorrectly calculated frame lengths. Incorrect frame length calculation causes frame coalescing to fail, as subsequent frames in the stream aren't found in the expected locations. https://bugzilla.gnome.org/show_bug.cgi?id=742446 2016-01-10 22:54:12 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: demote warning on wrong reserved value to fixme We are likely just parsing a backward-compatible stream we don't fully support. 2016-01-08 16:27:05 -0300 Thiago Santos * gst/imagefreeze/gstimagefreeze.c: imagefreeze: simplify caps selection The downstream caps query with a filter alraedy gives us the possible intersection so there is no need to check it again with downstream if it is supported. Just try to set it directly. 2016-01-07 20:42:41 +0000 Tim-Philipp Müller * gst/rtp/gstrtph264depay.c: rtph264depay: fix unnecessary sub-buffer creation We create a sub-buffer just to copy over its metas and then throw it away immediately, just use the original input buffer directly. 2016-01-07 20:38:27 +0000 Tim-Philipp Müller * gst/rtp/gstrtpdvdepay.c: rtpdvdepay: fix unnecessary sub-buffer creation We create a sub-buffer just to copy over its metas and then throw it away immediately, just use the original input buffer directly. 2016-01-07 20:34:05 +0000 Tim-Philipp Müller * gst/rtp/gstrtpamrdepay.c: rtpamrdepay: fix unnecessary sub-buffer creation We create a sub-buffer just to copy over its metas and then throw it away immediately, just use the original input buffer directly. 2016-01-07 20:27:29 +0000 Tim-Philipp Müller * gst/rtp/gstrtpvrawdepay.c: rtpvrawdepay: fix major memory leak and performance issue We call gst_rtp_buffer_get_payload() which creates a sub-buffer of each input buffer, just to copy over metas, and then leak it. https://bugzilla.gnome.org/show_bug.cgi?id=760289 2016-01-08 15:32:47 +0200 Sebastian Dröge * tests/check/elements/rganalysis.c: rganalysis: Fix compiler warnings in the unit test elements/rganalysis.c:919:66: error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value] push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, -1 << 14, 0)); ~~ ^ elements/rganalysis.c:929:69: error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value] push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, -1 << 14)); ~~ ^ elements/rganalysis.c:939:64: error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value] push_buffer (test_buffer_const_int16_mono (8000, 16, 512, -1 << 14)); ~~ ^ 2016-01-05 18:13:06 +0000 Tim-Philipp Müller * gst/audioparsers/gstflacparse.c: flacparse: don't map buffer multiple times when parsing 2016-01-07 18:20:30 +0200 Steven Hoving * gst/matroska/matroska-read-common.c: matroska: Store subtitle stream count in the correct variable And don't override the video stream count instead. 2016-01-05 18:59:06 +0200 Sebastian Dröge * gst/equalizer/gstiirequalizernbands.c: equalizer: The child-proxy API is GObject based in 1.x Not GstObject anymore. 2015-05-21 17:41:12 +0200 Pablo Anton * sys/v4l2/gstv4l2transform.c: v4l2-*: Configuring output pool correctly for using drivers min_buffer if present. Signed-off-by: Pablo Anton https://bugzilla.gnome.org/show_bug.cgi?id=755736 2015-12-31 15:46:31 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: add debug msg on CRC mismatch while validating frame header 2015-12-31 16:00:49 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: drop unneeded braces at _parse_frame() exit Additionally, drop redundant comment & line break 2015-12-31 15:55:18 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: minor grammar correction 2015-12-31 15:34:57 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: update URLs on pointers to online spec 2015-12-31 14:40:15 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: make buffer DTS setting explicitly unconditional We are setting it to PTS regardless of block_strategy 2015-12-31 14:21:40 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: add actual invalid block type to warning For someone that read the spec is clear the only *invalid* data block type is 127. For the rest, its useful information. Additionally. values 7-126 are currently reserved by the spec so the situation might change in the future. 2015-12-31 14:12:36 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: use shift instead of mask & comp We are only interested on the first bit of the first byte of the metadata block header to figure out whether is marked as the last one. The shift makes it quite clearer. 2015-12-31 12:52:13 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: warn on wishful parsing of weird headers If we get anything from 7 to 126 as type when parsing a metadata block header, we are likely dealing with a FLAC stream version we don't fully understand. Issue a warning if so. Document function assumptions regarding the passed-on type while at this. 2015-12-31 11:33:45 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: show meaningful info on frame CRC check As CRCs are calculated for the comparition already, we might as well (cheaply) inform the user how the numbers differ if a missmatched pair is found. While at it: Rephrase candidate-frame message to make more sense 2015-12-31 02:40:43 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: drop remaining trailing whitespace 2015-12-31 02:15:06 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: drop superflous else clauses 2015-12-31 01:09:51 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: factor out buffer time and offset resetting Avoids multiple occurrences of the same resetting pattern 2015-12-31 00:54:48 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: move block handling by type out of _parse_frame() 2015-10-07 18:51:25 +0900 Hyunjun Ko * gst/rtsp/gstrtspsrc.c: rtspsrc: replace duplicated codes to call new base sdp apis https://bugzilla.gnome.org/show_bug.cgi?id=745880 2015-12-30 12:16:56 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: drop redundant return statement on _header_is_valid() Fix the rather vague error message while at it. 2015-12-30 01:56:26 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: rework gst_flac_parse_frame_is_valid() drop unnecessary nesting looking for end of frame 2015-12-30 00:37:04 -0800 Reynaldo H. Verdejo Pinochet * gst/audioparsers/gstflacparse.c: flacparse: factor out context clearing routine 2015-12-29 18:05:56 +0200 Sebastian Dröge * gst/matroska/matroska-demux.c: matroskademux: Guard against no codec data in prores caps creation CID 1346532 2015-12-29 17:58:38 +0200 Sebastian Dröge * ext/vpx/gstvpxdec.c: vpxdec: Initialize buffer variable to NULL False positive but trivial to fix and possibly causing compiler warnings at some point in the future too. CID 1346535 2015-07-27 15:53:26 +0200 Wim Taymans * sys/v4l2/gstv4l2deviceprovider.c: v4l2deviceprovider: add properties to the device Add properties to the device with exactly the same keys and sematics as what pulseaudio uses as property keys. Also handle the case when a device is probed manually and not through gudev. https://bugzilla.gnome.org//show_bug.cgi?id=759780 2015-12-25 11:41:19 +0100 Sebastian Dröge * gst/audiofx/gstscaletempo.c: scaletempo: Free the various buffers in GstBaseTransform::stop() Previously we leaked them completely, but as they're specific to the caps freeing them in stop() instead of finalize() makes most sense. 2015-12-24 15:28:06 +0100 Sebastian Dröge * configure.ac: Back to development