Release notes for GStreamer Bad Plug-ins 0.10.23 "The Game Has Changed" The GStreamer team is proud to announce a new release in the 0.10.x stable series of the GStreamer Bad Plug-ins. The 0.10.x series is a stable series targeted at end users. It is not API or ABI compatible with the stable 0.8.x series. It is, however, parallel installable with the 0.8.x series. "That an accusation?" No perfectly groomed moustache or any amount of fine clothing is going to cover up the truth - these plug-ins are Bad with a capital B. They look fine on the outside, and might even appear to get the job done, but at the end of the day they're a black sheep. Without a golden-haired angel to watch over them, they'll probably land in an unmarked grave at the final showdown. Don't bug us about their quality - exercise your Free Software rights, patch up the offender and send us the patch on the fastest steed you can steal from the Confederates. Because you see, in this world, there's two kinds of people, my friend: those with loaded guns and those who dig. You dig. This module contains a set of plug-ins that aren't up to par compared to the rest. They might be close to being good quality, but they're missing something - be it a good code review, some documentation, a set of tests, a real live maintainer, or some actual wide use. If the blanks are filled in they might be upgraded to become part of either gst-plugins-good or gst-plugins-ugly, depending on the other factors. If the plug-ins break, you can't complain - instead, you can fix the problem and send us a patch, or bribe someone into fixing them for you. New contributors can start here for things to work on. Other modules containing plug-ins are: gst-plugins-base contains a basic set of well-supported plug-ins gst-plugins-good contains a set of well-supported plug-ins under our preferred license gst-plugins-ugly contains a set of well-supported plug-ins, but might pose problems for distributors Features of this release * aiffparse: extract ID3 tags embedded in ID3 chunks * amrwbenc: switch to the free vo-amrwbenc library * apexsink: Add support for generation 2 AirTunes hardware * applemedia: bump the rank of qtkitvideosrc to PRIMARY * autoconvert: remove the initial-identity property from autoconvert, update for basetransform changes in core * avcsrc: add AVC Video Services plugin for OS/X (captures DV or HDV video from Firewire port) * basevideo: cater for format conversion * basevideo: Fix locking, especially if both pads have different streaming threads * basevideodecoder: add API to drop a frame and post a QoS message on the bus * basevideodecoder: reverse playback support; limited legacy seeking support * basevideodecoder: better caps handling; event handling fixes esp. discont and flush * basevideoencoder: add support for new force-key-unit event API * basevideoencoder: implement preset interface; enable clipping by default * basevideoencoder: proxy the width/height/framerate/PAR constraints of downstream caps to upstream * bayer2rgb: rewrite signal processing and convert to orc for better speed * camerabin2: no longer experimental; add flags to disable conversion elements * camerabin2: add "audio-filter" property; countless fixes * camerabin: add "image-formatter" property * camerabin: prevent audio source from providing clock; reset audiosrc timestamping * camerabin: prevent captures from being lost when switching resolutions * colorspace: Add JPEG YCbCr matrix * colorspace: fix odd width and height handling in some fastpath cases * colorspace: fix r210 writing only half a scanline * d3dvideosink: new d3dvideosink element * dc1394src: implement LATENCY query * debugutils: new elements: compare (with memcmp and ssim method) and debugspy * decklink: add more modes, connection type, "audio-input" and "subdevice" properties * decklink: add support for Windows; properly set up analog input * decklinksink: add audio support * dfbvideosink: also consider non-accelerated DirectFB surfaces * diracparse: make diracparse work correctly * directdrawsink: handle pixel-aspect-ratio, lower rank to secondary * dshowdecwrapper: fix COM initialization * dtmf: post messages when starting to send/receive DTMF * dtmfsrc: align DTMF sound buffers with last-stop from event * dtmfsrc: reject start/stop requests that come out of order * dvbsrc: add "timeout" property and use (interruptible) GstPoll * element-templates: improve the audiofilter template * faac: add properties for VBR encoding * faac: add profile and level to the caps; negotiate output format from downstream caps * facedetect: detect face features (mouth, nose, eyes) and drop faces that don't have them * faceoverlay: add element that displays an SVG image over a detected face * freeverb: new freeverb element (reverb effect) * h263parse: also extract width and height into caps; propagate downstream caps * h264parse: many negotiation and caps-related fixes; propagate downstream caps where appropriate * h264parse: countless parsing and timestamping fixes * hlsdemux: allow bandwidth switching during caching of fragments * hlsdemux: make more error resilient * hlsdemux: cache number of fragments we are required to cache * hlsdemux: add seeking support (for streams that are not live) * hlsdemux: implement duration and seeking queries; improved duration reporting * hlsdemux: Send a flush-stop when switching pads. Fixes A -> A/V sync issue * hlsdemux: implement buffering by posting buffering messages on the bus * hlsdemux: send NEWSEGMENT events in TIME format * hlsdemux: switch to higher/lower bitrate by more than one step at a time * hsldemux: handle change of media types * inter: new intermediate surface elements: inter{video,audio,sub}{sink,src} to decouple elements within the same pipeline * invtelecine: Remove in favor of fieldanalysis * irtspparse: add Interleaved RTSP parser element * jifmux: change class to formatter, bump rank to secondary * kate: do not consider an empty SPU to be a fatal error * kateenc: don't error on empty input buffers * kate: pass on timed event metadata as tags when we can * kate: support for rendering on several YUV formats * legacyh264parse: create correct avc codec-data * legacyh264parse: delay pushing buffers until we have width/height * legacyh264parse: fix output caps alignment for avc input * modplug: fix modules playing as mono instead of stereo * motioncells: new element to detect areas of motion * mpeg2enc: support mjpegtools 2.0 * mpeg4videoparse: properly handle profile and level in caps * mpegpsdemux: timestamp handling and seeking fixes * mpegpsmux: remember whether an incoming buffer is a keyunit or not * mpegpsmux: add "aggregate-gops" property to aggregate GOPs into buffer lists * mpegpsmux: put stream headers into output caps * mpeg[pt]sdemux: Add support for AAC LATM/LOAS streams * mpegtsbase: actually set seen_pat=TRUE when we see a PAT * mpegtsdemux: always try to seek for to a keyframe; add accurate seeking support * mpegtsdemux: fix frequent deadlock demuxing MPEG TS * mpegtsdemux: fix scanning stopping too early * mpegtsdemux: fix timestamps in newsegement event after seeking * mpegtsdemux: implement key_unit seeking for MPEG2 video * mpegtsdemux: payload parsing for H.264 * mpegtsdemux: push based seeking based on PCR * mpegtsmux: add support for force key unit events * mpegtsmux: unset the current PCR stream when starting a new unit * mpegtsparse: fix parsing of PSI table IDs * mpegtsparse: support more character set encodings * mpegts: stop scanning for keyframes as early as possible * ofa: don't crash when there's no data to create a fingerprint from * openal: new OpenAL sink and source elements: openalsrc, openalsink * opencv: allow to build against 2.3.1 * opus: new Opus audio codec elements: opusdec, opusenc, opusparsertpopusdepay, rtpopusay * pcapparse: also support extracting tcp data; fix SLL parsing * photography: add missing FLICKER_REDUCTION capability * pvr2d: new pvrvideosink element * psmux: fix writing of system header, which makes VLC not skip the adjacent PSM and play embedded H.264 streams * removesilence: new plugin * resindvdsrc: do not try to seek before the first chapter * rotate: angle is in radians already, do not scale it * rsvgdec: use input buffer timings if possible * rtmp: add rtmpsink element for output to an RTMP server * rtpdtmfmux: Add last-stop to dtmf-event upstream events * rtpdtmfsrc: Correctly recognize the end of a buffer * rtpdtmfsrc: Just error out if there is no clock * rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap * rtpdtmfsrc: Put the inter digit interval at the end, not at the start * rtpdtmfsrc: Respect ptime from the caps * rtpdtmfsrc: Start at the last_stop from the start event if there was one * rtpvp8: fix bitstream parsing using the wrong kind of bitreader * rtpvp8: Reject unknown bitstream versions * rtpvp8: Update the pay/depay to the ietf-draft-01 spec * schroenc: balance encoder and video format alloc/dealloc * schroenc: remove shape_output handling * scopes: add a new element similar to synaesthesia * scopes: add a simple fft based scope * scopes: draw pixels with signle 32bit writes * scopes: first version of a scopes plugin using a new baseclass * scopes: fix elements descriptions * shm: add ability to add uint64 tags on buffers * shm: add buffer-time property * smooth: new element, port to 0.10 * soundtouch: Handling incoming rate when requested * spacescope: add color-modes * spacescope: use the drawhelpers and add a draw-style property * spandsp: Adding spandsp plugin with spanplc element for packet loss concealment * spectrascope: use add_pixel for non-white pixels * subenc: Add webvttenc element * teletextdec: New teletext decoder plugin based in zvbi * tiger: add a "silent" property to skip rendering * tsdemux: add explicit supported AAC stream-format in template caps * tsdemux: countless fixes and improvements * tta: decrease rank to NONE * video: abstract surface API for HW accelerated codecs * video: add GstVideoContext interface * video: add libgstbasevideo PC file * voaacenc: add new plugin for audio AAC encoder based on vo-aacenc lib * voaacenc: add profile and level to the caps * vp8dec: add check if we have legal aspect-ratio before reset it * vp8dec: propagate downstream flow return to upstream * vp8dec: use new basevideodecoder API to drop frames and get QoS messages posted * vp8enc: add "lag-in-frames" and "min/maxsection-pct" options * vp8enc: generate a timestamp for alt-ref frames * wrappercamerabinsrc: push newsegments on video capture start * xviddec: add video/mpeg,mpegversion=4 to the caps * xvidenc: add profile/level to the caps and negotiate them with downstream * xvidenc: add support for levels 4a/5/6 of the simple profile * xvidenc: don't add the profile/level to the video/x-xvid caps Bugs fixed in this release * 648021 : gst-plugins-bad/gst/nsf/ code not needed (can be replaced by ext/gme/) * 655887 : gst_buffer_create_sub: assertion `buffer- > size > = offset + size' failed * 597822 : Add removesilence plugin * 608171 : [dvbsrc] many wake-ups in read_device on signal loss. * 652677 : [bayer] compiler warning in orc-generated code * 652956 : vp8enc: add more encoder options * 654310 : FAAC VBR encoding support * 655362 : [decklink] Add support for Windows * 532820 : [mpegtsdemux] garbled display * 550230 : A plug-in " openalsrc " for capture audio using OpenAL * 569305 : [mgpegvideoparse] not all tags show up in gst.extend.discoverer * 578926 : [h264parse] Make sure h264parse are autoplugged when required * 589064 : resindvd doesn't behave right for " previous chapter " * 599469 : resindvd: problems pre-rolling in the absence of audio * 609639 : xviddec plugin caps does not allow MPEG 4 video - trivial fix * 611046 : mpegtsmux: pcr problems * 615615 : A plugin for audio output using OpenAL * 615681 : [mpeg[pt]sdemux] do not support AAC LATM Stream type * 616421 : celtenc/dec produces silent output with live sources * 619739 : Teletext decoder element based on libzvbi * 620119 : [dvdspu] Program received signal SIGSEGV, Segmentation fault. * 625190 : Directshow decoders wrappers have COM initialization issues * 625520 : dc1394src: timestamping problem * 628284 : [rsvgdec] all buffer timestamps are set to zero * 629244 : [opencv] Add motion detection element * 631390 : dfbvideosink does not consider surfaces when blit is not accelerated * 631416 : mpegpsdemux hits EOS too early * 634582 : Localized menus when playing DVD * 635917 : [mpegtsparse] don't parse and post all the EIT events. * 640017 : basevideodecoder: add API to drop a frame and post a QoS message on the bus * 641405 : [vp8enc] patch - allow to use best quality * 641918 : [Camerabin2] Allow previewing without capture * 642023 : [mpeg4videoparse] assertion `a_d != 0' failed * 642759 : faceoverlay plugin: displays an SVG image over a detected face on a video stream * 647055 : liveadder has a memory leak * 647748 : [aacenc] add AAC audio encoder based on vo-aacenc lib * 647842 : [faac] Detect ADTS/raw output in the downstream caps * 648245 : mpegtsdemux: truncates last buffer * 648478 : jpegparse: unit test for APP1/exif & comment parsing * 648565 : clean_ups in opencv * 648933 : [mpegvideoparse] Avoid searching for picture start codes when not needed * 649391 : [jifmux] bump rank from none * 649822 : wrappercamerabinsrc: add a filter property * 649832 : [camerabin2]: negotiation problems when capturing * 649931 : [apexsink] Allow to play to new, generation 2 AirTunes (AirPlay) hardware * 650072 : [basevideoencoder] Fix use-after-free after state change transition * 650171 : gst/dccp: fix build on newer mingw * 650228 : Fix h264parse negotiation * 650323 : [h264parse] leaks entire input if converting bytestream - > avc,au * 650416 : [h264parse] Assertion failure: nal_size > =2 * 650484 : h264parse should increase max allowed PPS id from 31 to 255 * 650594 : [faac] AAC profile support in the caps * 650595 : voaacenc needs profile caps support * 650914 : decklink sink has no audio support * 650970 : mpeg2enc: fix build with mjpegtools 2.0 * 651050 : [mpegtsmux] error " Stream on pad xxx is not associated with any program " debug output incorrect pointer instead of padname * 651779 : directdrawsink: keep aspect ratio * 651782 : add d3dvideosink on windows * 652035 : [d3dvideosink] Fix configure check and makefiles * 652261 : xvidenc needs codec profiles in caps * 652694 : rtpvp8pay fails on error-resilient stream * 652902 : vp8dec: Add check if we have legal aspect-ratio before reset it. * 652924 : [tta] playing white noise instead of file contents * 652951 : vp8enc: Set correct timestamp/duration for altref/invisible frames * 652995 : legacyh264parse wrong access-unit output * 653013 : h264parse fails to create SPS when input uses 4 byte start code * 653087 : [h264parse] Assertions on valid h264 streams when converting to stream-format=avc,alignment=nal * 653161 : wininet.h checking during configure * 653481 : tsdemux: Fail to sync to stream when input buffers lacks OFFSET * 653544 : [basevideodecoder] Immediately forwards synchronized events * 654293 : [basevideodecoder] Leaks coder_hook * 654416 : [mpegtsmux] gst_buffer_unref () call segfaults * 654572 : Set but unused warning * 654657 : tsdemux: newsegment for push-mode is wrong * 654666 : mpeg4videoparse: Fix failure to find frames on some streams * 654799 : Add force-key-unit support to mpegtsmux * 654805 : Missing gstdecklink.h in sys/decklink when doing a " make dist " * 654806 : Missing dependencies for gst/intra * 654840 : dfbvideosink: fix harmless typo in variable initialization * 654844 : dtsdec: stream with jitter sounds broken * 655112 : videomaxrate: add " max-rate " property and improve caps negotiation * 655319 : hlsdemux: compilation problem on NetBSD caused by wrong GST_ELEMENT_ERROR usage * 655361 : pcapparse: fix SLL parsing * 655540 : mpegtsbase: gst_structure_id_get() called with wrong type * 655804 : Play position advancing but frames not rendered * 656107 : shmsink should have a buffer-time property. * 656115 : mpegpsdemux: handle SCR jumps/discontinuities more gracefully * 656164 : dirac triggers set but unused variable warnings * 656166 : schroedinger: triggers set-but-not-used warnings from gcc * 656226 : [faac] Does not passthrough downstream caps constraints to upstream * 656641 : Segfault using ofa element * 656686 : celtdec: make this compile with git libcelt * 656928 : vp8: probe for the new tuning API to keep building with older libvpx * 656929 : vp8: drop frames is a uint in the libvpx API, not a boolean * 657033 : kate: emit timed metadata as tags * 657091 : kate: do not clear out high bits from display area * 657250 : rsndvdbin attempts to modify read only metadata * 657363 : tests: make camerabin2 test build * 657368 : basevideoencoder: fix element leak * 657419 : basevideoenc: do not try to calculate latency from an unknown framerate * 658251 : dccp: cross compile warning - " WINVER " redefined * 658450 : mpegvideoparse: make this build with older glib * 658800 : h264parse: do not try to read from a non existent VUI * 658940 : kate: flush on seek, and ensure we cancel any waiting buffer * 658973 : mpegvideoparse: avoid reading past a buffer * 659061 : camerabin2: replace deprecated g_atomic_int_exchange_and_add * 659087 : celt: various cleanups/fixes * 659485 : mpegpsdemux: large MPEG PS file not working when seeking/transcoding with encodebin * 659836 : Transcoding crash with new git master FAAC * 659924 : Fix some MPEG-2 transport streams containing audio and private data * 660118 : mpegtsdemux: keep CRC data in .rodata * 660234 : [mpeg4videoparse] Use strings for the profile/level fields in caps * 660364 : opus: misc cleanup/fixes * 660406 : [rtpvp8] update rtp vp8 pay/depay to the latest IETF draft version 01 * 660469 : opus/celt: fix calculation of filler data size * 660528 : kate: rendering performance improvements * 660630 : kate: fix race condition on PAUSED- > READY state change * 660999 : opusenc: fix latency query * 661053 : some patches to gsth264parse.c * 661066 : Segfault when transcoding a file from Ogg to Quicktime * 661098 : [rtmp] need to initialize winsock 2 dll * 661113 : Some patches to h264parse * 661614 : mplex configure check broken with mjpegtools 2.0.0 * 662164 : vc1parser: fix parsing of FRMRTQ_POSTPROC, BITRTQ_POSTPROC and sequence layer * 662321 : GstVideoContext to enable context sharing * 662420 : Abstract surface API for HW accelerated decoders * 662746 : vc1parser: fix parsing of RANGEREDFRM * 662776 : vc1parser: do not overwrite buffer * 662857 : tiger: add a 'silent' property to skip rendering * 662949 : [h264parse] Doesn't use PAR from bitstream * 663180 : h264parse tests are not valgrind clean * 663203 : colorspace: fix r210 writing only half a scanline * 663234 : tests: allow building with older versions of glib (g_list_free_full) * 663235 : mpegvideoparser: input data is const, mark it so * 663238 : colorspace: fix width/height mismatches * 663309 : mpegvideoparse: Fix in picture header parse. * 663346 : autoconvert: merge caps instead of using union * 663552 : h264parse: conditional jump or or move depends on uninitialised value(s) * 663768 : mimic, opencv, vp8, acmmp3dec, linsys: Don't build static plugins * 663782 : Progressive support for gstmpegvideoparser * 664048 : camerabin: Document requirement to be in PLAYING state for capture-start * 664123 : [h264parse] Conversion from AVC to byte stream fails for nal_length_size != 4 * 664257 : [mpegtsparse] Support UTF-16BE text encoding * 664631 : Build error: gstsmooth.c:205:3: error: format '%d' expects type 'int', but argument 8 has type 'gulong' * 664725 : aiffparse: extract embedded ID3 tags * 664815 : opusenc: Fixing " Unused var " compiling error for opus codec * 664817 : Adding opus RTP payloader/depayloader module * 665078 : opus: work without the Ogg headers * 665205 : rsndvd: sends buffers before newsegment event * 665378 : Fail to compile xvidenc in ubuntu 11.04 uninstalled setup * 665418 : h264parse produce AVC: nal size -1702885365 * 665584 : [h264parse] Reduce latency and cpu usage for packetized input * 665631 : mpeg4videoparse regressions * 665703 : mpeg4videoparse: memory leak * 665814 : mpegtsdemux: add a property to control whether to signal no-more-pads * 666517 : Frequent deadlock while discovering a MPEG TS file * 666584 : Invalid memory access in gsth264parse * 666750 : Compiler warning- > error in faac * 667560 : h264parse: H.264 reverse playback does not work anymore * 668192 : codecparsers: h264: fix ref_pic_list_modification() * 668311 : does pkg-config check for gst-plugins-good-0.10.pc which is not installed * 668380 : [h264parse] [codecparsers] gst_h264_parse_hrd_parameters not reading cbr_flag * 668381 : [h264parse] [codecparsers] SEI parsing fails when payload contains emulation_prevention_three_byte * 668471 : [h264parse] Negotiation regression for autoplugging * 668521 : REQUIREMENTS file doesn't list requirement for rtmp * 668627 : [h264parse] conversion avc/au to byte-stream/au broken * 668833 : kateenc provides wrong duration information when muxed in Matroska * 669365 : rotate plugin docs say that 'angle' is in radians, yet seems to be in degrees * 669697 : shmsink blocking forever * 628609 : The qtwrapperaudiodec_samr decoder doesn't handle buffers containing many AMR frames properly * 655318 : photography: add missing FLICKER_REDUCTION capability Download You can find source releases of gst-plugins-bad in the download directory: http://gstreamer.freedesktop.org/src/gst-plugins-bad/ GStreamer Homepage More details can be found on the project's website: http://gstreamer.freedesktop.org/ Support and Bugs We use GNOME's bugzilla for bug reports and feature requests: http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer Developers GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned from there. Interested developers of the core library, plug-ins, and applications should subscribe to the gstreamer-devel list. If there is sufficient interest we will create more lists as necessary. Applications Contributors to this release * Alessandro Decina * Alexey Fisher * Andoni Morales Alastruey * Andreas Frisch * Arun Raghavan * Brad Smith * Brian Gitonga Marete * Christian Fredrik Kalager Schaller * Danilo Cesar Lemes de Paula * David King * David Schleef * Debarshi Ray * Edward Hervey * Felipe Contreras * Gabriel Strimtu * George Kiagiadakis * Guillaume Emont * Gwenole Beauchesne * Götz Waschk * Jan Schmidt * Janne Grunau * Jonas Larsson * Josep Torra * Joshua M. Doe * Julien Isorce * Julien MOUTTE * Krzysztof Krakowiak * Lasse Laukkanen * Laura Lucas Alday * Lauri Lehtinen * Levente Farkas * Luciana Fujii Pontello * Luis de Bethencourt * Marc-André Lureau * Mark Nauwelaerts * Mart Raudsepp * Martin Storsjo * Matej Knopp * Mukul Majmudar * Nicola Murino * Nicolas Dufresne * Olaf Seibert * Oleksij Rempel (Alexey Fisher) * Olivier Crête * Pino Toscano * Quentin Smith * Rafael Diniz * Raimo Järvi * Raluca Elena Podiuc * René Stadler * Reynaldo H. Verdejo Pinochet * Rob Clark * Robert Jobbagy * Robert Swain * Sameer Naik * Sebastian Dröge * Sebastian Pölsterl * Sjoerd Simons * Sreerenj Balachandran * Stefan Kost * Stefan Sauer * Teemu Katajisto * Thiago Santos * Thibault Saunier * Thijs Vermeir * Tiago César Katcipis * Tim 'mithro' Ansell * Tim-Philipp Müller * Tom Deseyn * Tommi Myöhänen * Vincent Génieux * Vincent Penquerc'h * Víctor Manuel Jáquez Leal * W. Michael Petullo * Youness Alaoui * Zhao Halley * benjamin gaignard